西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁業(yè)內(nèi)動態(tài) 業(yè)內(nèi)資訊 → 騰訊社區(qū)開放平臺.NET SDK 加快你的社區(qū)接入到騰訊社區(qū)開放平臺

騰訊社區(qū)開放平臺.NET SDK 加快你的社區(qū)接入到騰訊社區(qū)開放平臺

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2011/4/24 17:33:46字體大小:A-A+

作者:西西點擊:85次評論:0次標簽: 騰訊

  • 類型:學(xué)生模板大。2.8M語言:中文 評分:10.0
  • 標簽:
立即下載

“QQ登錄”使用戶能使用QQ賬號一鍵登錄接入網(wǎng)站,大大降低了注冊、登錄的門檻。借助龐大的QQ用戶群,給第三方網(wǎng)站帶來更多新用戶。已登錄用戶還可以將在第三方網(wǎng)站發(fā)布、分享的信息即時同步到QQ空間,使網(wǎng)站內(nèi)容通過好友關(guān)系得到進一步的傳播。

騰訊社區(qū)開放平臺.NET SDK是基于騰訊社區(qū)開放平臺的OAuth登錄文檔API文檔 使用C#開發(fā)的.NET 4.0的一個庫,目前完整實現(xiàn)了騰訊社區(qū)開放平臺的所有接口?梢约涌炷愕纳鐓^(qū)接入到騰訊社區(qū)開放平臺,免去大量的重復(fù)的調(diào)試開發(fā)的時間,所以我是以New BSD協(xié)議創(chuàng)建的開源項目,各位有同樣需求的各位同仁參與建設(shè)著一個項目,項目的托管地址是http://qqconnect.codeplex.com/。

騰訊社區(qū)開放平臺.NET SDK使得你調(diào)用騰訊社區(qū)開放平臺的REST接口非常容易,你只需要到http://connect.opensns.qq.com/apply 申請到必須的consumer key和consumer secret,在你的申請通過了騰訊社區(qū)開放平臺的審核后就可以得到。這個酷的主要特性如下:

  • 封裝好了騰訊社區(qū)開放平臺的OAuth協(xié)議訪問騰訊社區(qū)開放平臺的REST接口
  • 和騰訊社區(qū)開放平臺的接口保持同步(目前只有一個接口,將來肯定會不斷增加)

這個庫使用Visual Studio 2010和C# 3.0構(gòu)建的,主要擴展和使用到下面的開源庫:

  1. DotnetOpenauth:DotNetOpenAuth 是一個 C# 開發(fā)包,用以實現(xiàn) OpenID 2.0 的提供者、中繼方(Relying Party)、OAuth使用者和OAuth服務(wù)提供者;同時支持 InfoCard Selector 。OAuth協(xié)議客戶端的實現(xiàn)上參考了這個項目的代碼。
  2. Jayrock:Jayrock是一個LGPL的開源的軟件,實現(xiàn)了JSON和JSON-RPC,支持微軟ASP.NET框架。具體可以參考文章:Jayrock: JSON and JSON-RPC for .NET

上面我們從高層次了解了這個SDK的實現(xiàn)原理,下面我們介紹如何使用這個SDK來和騰訊社區(qū)開放平臺進行交互。SDK主要有兩個需要關(guān)注的類QzoneSDK.Context.QzoneContext

和 QzoneSDK.Qzone。

首先我們結(jié)合【QQ登錄】OAuth登錄文檔來說明。Qzone OAuth總體處理流程里共有七個步驟,從下面的總體流程圖中可以看到:

clip_image002

左側(cè):為第三方網(wǎng)站需要做的事情。在每個綠色的方框里,標明了第三方應(yīng)該調(diào)用的接口,接口主要功能及邏輯見Qzone OAuth接口說明。

右側(cè):為Qzone接收到第三方應(yīng)用發(fā)過來的請求后做的事情。第三方請求的發(fā)送地址以及應(yīng)包含的參數(shù)在接下來的單步詳解中進行了說明

通過類QzoneSDK.Context.QzoneContext帶上你申請的oauth_consumer_key (對應(yīng)Qzone的appid)和oauth_consumer_secret (對應(yīng)Qzone的appkey)到騰訊社區(qū)開放平臺獲取到Request Token,然后把tokenKey和tokensecret保存到Session里,后續(xù)需要使用。示例代碼如下:

string key = ConfigurationManager.AppSettings["ConsumerKey"];

string secret = ConfigurationManager.AppSettings["ConsumerSecret"];

var context = new QzoneSDK.Context.QzoneContext(key, secret);

var callbackUrl = "http://localhost/account/QQCallback";

var requestToken = context.GetRequestToken(callbackUrl);

Session["requesttokenkey"] = requestToken.TokenKey;

Session["requesttokensecret"] = requestToken.TokenSecret;

var authenticationUrl = context.GetAuthorizationUrl(requestToken, callbackUrl);

return Redirect(authenticationUrl);

用戶在騰訊社區(qū)開放平臺上授權(quán)使用后會導(dǎo)向到你的網(wǎng)站,也就是上圖的第三步,在門上述的callback 的頁面上就可以獲取上圖第四步的參數(shù),利用上述獲得的參數(shù)調(diào)用QzoneSDK.Qzone進行第五步調(diào)用,就可以獲得AccessToken,這個AccessToken,目前access_token(及其secret)是長期有效的,和某一個openid對應(yīng),目前可以支持線下獲取該openid的信息。

if (Request.QueryString["oauth_vericode"] != null)

{

var requestTokenKey = Session["requesttokenkey"].ToString();

var requestTokenSecret = Session["requesttokensecret"].ToString();

var verifier = Request.QueryString["oauth_vericode"];

string key = ConfigurationManager.AppSettings["ConsumerKey"];

string secret = ConfigurationManager.AppSettings["ConsumerSecret"];

QzoneSDK.Qzone qzone = new QzoneSDK.Qzone(key, secret, requestTokenKey, requestTokenSecret, verifier);

var access = qzone.OAuthTokenKey;

var currentUser = qzone.GetCurrentUser();

var user = (BasicProfile)JsonConvert.Import(typeof(BasicProfile),currentUser);

}

上述代碼還演示調(diào)用騰訊開放社區(qū)目前唯一的一個API ( get_user_info),通過Jayrock庫將Json數(shù)據(jù)轉(zhuǎn)換為庫中定義的用戶登錄數(shù)據(jù)的實體BasicProfile。

 項目的下載地址:http://qqconnect.codeplex.com/releases/view/65042 

項目文檔:騰訊社區(qū)開放平臺教程.pdf

    讀書筆記
    (95)讀書筆記
    書中自有黃金屋,書中自有顏如玉,我們總能從書中學(xué)習(xí)到很多意想不到的知識,看見不一樣的風景。特別是在我們的學(xué)生時代,不僅是教科書,更要涉及各種各樣的課外書籍,不僅要讀,還要學(xué)會做讀書筆記。我們讀再多,不做讀書筆記,沒有讀后感,也相當于白讀,做讀書筆記的過程就相當于仔細品讀的過程,而不是一目十行的略讀。本合集是由西西為大家整理的讀書筆記合集,歡迎有需要的朋友前來下載。讀書筆記怎么寫讀書筆記是人們在讀書...更多>>

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)