閱讀277 返回首頁    go 阿裏雲 go 技術社區[雲棲]


校內網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類

public partial class Friends_get : XPage {
    
protected void Page_Load(object sender, EventArgs e) {
    }
}

二、如果不符合你的條件的話,可以使當前頁麵實現IXHandler接口並在調用 XiaoNeiApi.Init(this)方法

如我要在Asp.net MVC中使用XiaoNei.Net則我用以下代碼讓Controller支持校內網的API:

public class HomeController:Controller,IXHandler{
    
public XiaoNeiApi Api { getset; }
        
public HomeController(){
               XiaoNeiApi.Init(
this);
        }
}

三、如果還是習慣那種老式的方法也可以,當然也可以寫在Page_Load裏,個人習習慣,不過我感覺這樣的話代碼真是不少

public class XPage : System.Web.UI.Page{
    
public XiaoNeiApi Api { getset; }
    
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

  上一篇:go 改寫即時消息的發送 包含同時給多人發送信息
  下一篇:go TreeView使用筆記