腾讯社区开放平台(http://opensns.qq.com/).NET SDK!此SDK采用的开源协议New BSD 协议,所以你可以任意使用此SDK包库文件,包括你的商业程序。但请您遵守BSD 开源协议的规定使用!
OAuth2.0 版本支持手机网站/手机APP:
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登录完整实施过程