校內網API的.net版本XiaoNei.Net 1.0(非官方)
校內API開放也有一段時間了,也沒有太關注,正好新版本的SNS開發到了API這一塊,正好借鑒一下XiaoNei,FB,MySpace的API。
且聞校內API比較有前途,最近的API編程大賽也比較火,而且人氣也較旺
於是順手用了一下校內的API,發現校內隻提供了php與jsp的API卻並未提供.net。
當然也有不少朋友封裝了.net 的API,但我感覺使用上略見複雜,於是我自己封裝了一下。
DLL文件、源碼、演示下載:https://www.codeplex.com/xn/Release/ProjectReleases.aspx?ReleaseId=16307
Codeplex開源項目 :https://www.codeplex.com/xn/
開始說明:
初始化API的方法如下:
一、最簡單的,頁麵繼承XPage類或XMasterPage類
如protected void Page_Load(object sender, EventArgs e) {
}
}
二、如果不符合你的條件的話,可以使當前頁麵實現IXHandler接口並在調用 XiaoNeiApi.Init(this)方法
如我要在Asp.net MVC中使用XiaoNei.Net則我用以下代碼讓Controller支持校內網的API:
public XiaoNeiApi Api { get; set; }
public HomeController(){
XiaoNeiApi.Init(this);
}
}
三、如果還是習慣那種老式的方法也可以,當然也可以寫在Page_Load裏,個人習習慣,不過我感覺這樣的話代碼真是不少
public XiaoNeiApi Api { get; set; }
protected override void OnInit(EventArgs e) {
base.OnInit(e);
string secret = Request.QueryString["xn_sig_session_key"].ToString();
secret = Server.UrlEncode(secret);
string apiKey = Request.QueryString["xn_sig_api_key"];
this.Api = new XiaoNeiApi(apiKey, secret);
}
}
API使用方法如下:
在初始化之後,即默認你繼承了XPage
則頁麵類中會有一個Api屬性。
如果你想調用users.getInfo方法,則Api.Users.getInfo()就可以得到
如果你想調用friends.areFriends方法則Api.Friends.areFriends("","")進行判斷
具體的使用方法可以在演示中看到
其它擴展:
數據庫訪問:
這裏我做了一個比較方便的方法
DataBaseExecutor dbe = new DataBaseExecutor(
new OleDbDataOpen(CONNECTIONSTRING)
);
DataList1.DataSource = dbe.GetTable("select * from [user] where role=@r and [type]=@t"
,"@r",1
,"@t","admin");
DataBaseExecutor 除了可以用GetTable外還有直接執行的Execute方法以及返回首行首列的ExecuteScalar方法
DataBaseExecutor使用什麼數據庫適配器全在於它的構造函數,在程序中我也提供了一個SqlServer的類SqlDataOpen。使用時隻要將上麵的OleDbDataOpen替換就行了。
出現錯誤的解決方法:
本程序為校內網應用程序,請登錄後再使用:通常在本地調試時出現,隻要在Url的QueryString加上你的 xn_sig_session_key與xn_sig_api_key就行了獲取的方法是在你校內應用上點右鍵,得到你IFrame中的地址,看看它的查 詢字符串(就是?後麵的內容),複製過來帖在地址後麵即可
其它說明會一點一點補充的
另:
多謝 許哲兄 是他的API的封裝使我產生了做這個的念頭
命名與基本的初始化都始於許哲兄的API
校內群https://group.xiaonei.com/GetTribe.do?id=249310165
開發者:https://www.cnblogs.com/chsword/
本程序完全開源可以隨意更改,可以不保留作者信息。
最後更新:2017-04-02 00:06:33