腾讯社区开放平台(http://opensns.qq.com/).NET SDK!此SDK采用的开源协议New BSD 协议,所以你可以任意使用此SDK包库文件,包括你的商业程序。但请您遵守BSD 开源协议的规定使用!

OAuth2.0 版本支持手机网站/手机APP:

腾讯社区开放平台OAuth2.0 SDK项目

OAuth2.0的SDK已经发布。推荐大家使用OAuth2.0的SDK。

SDK的使用环境?
开发环境:Visual Studio 2010
框架环境:.NET FRAMEWORK V2.0


怎么使用此SDK?
1、下载项目源码编译项目取得DLL库文件或已编译的DLL库文件,将DLL库文件引用到你的项目中。
2、取得你的腾讯社区开发平台的oauthconsumerkey (对应Qzone的appid)和oauthconsumersecret (对应Qzone的appkey),如果没有请自行前去腾讯社区开放平台申请。
3、根据oauthconsumerkey 与oauthconsumersecret实例化QzoneSDK.Context.QzoneContext和QzoneSDK.Qzone对象,并进入OAuth授权进程,最终取得Access Token值。
4、QzoneSDK.Qzone根据Access Token调用接口即可。

示例代码如下:

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

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

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

//Get a Request Token

var callbackUrl = ConfigurationManager.AppSettings["callbackUrl"]; //"/qzone/account/QQCallback.aspx";

var requestToken = context.GetRequestToken(callbackUrl);

//request token, request token secret 需要保存起来

//在demo演示中,直接保存在全局变量中.真实情况需要网站自己处理

Session["requesttokenkey"] = requestToken.TokenKey;

Session["requesttokensecret"] = requestToken.TokenSecret;

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

Response.Redirect(authenticationUrl);

用户在腾讯社区开放平台上授权使用后会导向到你的网站,也就是上图的第三步,在门上述的callback 的页面上就可以获取上图第四步的参数,利用上述获得的参数调用QzoneSDK.Qzone进行第五步调用,就可以获得AccessToken,这个AccessToken,目前access_token(及其secret)是长期有效的,和某一个openid对应,目前可以支持线下获取该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);

//这里需要将qzone.OAuthTokenKey, qzone.OAuthTokenSecret, qzone.OpenID 存储起来用于后面的API的访问

QzoneSDK.Qzone qzone2 = new QzoneSDK.Qzone(key, secret, qzone.OAuthTokenKey, qzone.OAuthTokenSecret, string.Empty, true, qzone.OpenID);

Session["qzonesdk"] = qzone2;

qzone2 = Session["qzonesdk"] as QzoneSDK.Qzone;

var currentUser = qzone2.GetCurrentUser();

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

if (null != user)

{

this.Nickname.Text = user.Nickname;

this.Figureurl.Text = user.Figureurl;

}

}
此SDK项目托管于www.codeplex.com 。
URL: http://qqconnect.codeplex.com

SVN: https://qqconnect.svn.codeplex.com/svn

Demo: http://www.dotnetting.cn/qzone/Account/Login.aspx

注:众人拾柴火焰高,欢迎各位加入到此SDK项目的开发中来。
微博:http://t.qq.com/geffzhang

QQ群:80767552 [已满],141632576

更详细的资料参看博客

[QQ社区开放平台]介绍开放授权协议-OAuth

腾讯社区开放平台.NET SDK基于New BSD协议开源

Devtext QQ登录完整实施过程

 



Last edited Feb 25, 2012 at 1:54 AM by shanyou, version 17