腾讯社区开放平台C# SDK

腾讯社区开放平台是基于QQ空间、朋友社区(QQ校友)两大社交网络的开放平台。至今官方提供了一系列的开放接口(Open API)和开发工具包(SDK),开发者可以通过Open API获取登录用户信息、用户签名信息以及好友关系链信息等。已上线的应用还可以调用支付和监控接口,实现支付功能,查看应用实时运维数据。

腾讯官方给出了不少的SDK,点这里进入官方地址。遗憾的是没有开放C#的SDK。

我们DotNet开发者不能落后其它平台的开发者,这里开源我的腾讯社区开放平台SDK。

先上单元测试结果吧,这个还是比较重要的。

上面的七个方法对应腾讯官方文档的7个接口。

类库使用说明:

1、配置:你申请应用后,腾讯会给你AppId,AppKey,AppName这三个值,你需要把这三个值配置到App.config或者web.config中。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="qq.api" type="System.Configuration.NameValueSectionHandler"/>
  </configSections>
  <qq.api>
    <add key="AppId" value="APP ID"/>
    <add key="AppKey" value="APP KEY"/>
    <add key="AppName" value="APP NAME"/>
  </qq.api>
</configuration>

2、在你的项目中引用QQToolkit,然后使用如下方式调用

User user = null;
try
{
    user = QQClient.Instance.GetUserInfo("openId", "openKey");
}
catch (WebException ex)
{
    throw ex;
}

QQClient.Instance是一个单例,你在调用接口的时候,需要传入腾讯给的openId和openKey才能正常的获取数据。QQ校友插件是通过iframe调用你的网站,而openId和openKey会通过url传参给你。可以通过Request.QueryString["openId"]和Request.QueryString["openKey"]得到。

openKey疑是时间戳,每次的值都不一样。你可以把腾讯给你的openId和openKey自己缓存起来方便使用,我测试过openKey的过期时间,7个小时内都能正常调用接口,但很奇怪的是每次测试都在7个小时左右的时间会停止。

组件内部的实现细节我就不再陈述,这里附上类图,具体的实现大家可以看源码。有问题可以给我留言…

噢,差点忘了贴上下载地址了:http://code.google.com/p/moozi/downloads/detail?name=QQToolkit.rar
腾讯社区开放平台C# SDK

已有 72 条评论

  1. collinye 说:

    很好,下载看一下

    • 木子 说:

      谢谢

  2. flamingo 说:

    支持!!!我也正缺这个..不过,腾讯那边说还有些问题需要调整..先下下看看,若有修改,希望也更新下啊~~

    • 木子 说:

      嗯,会的,感谢支持…请多多关注…

  3. 1708 说:

    支持,能联系你吗?如何联系你?我的QQ是545550965

  4. 1708 说:

    谢谢,谢谢,能加QQ吗?我的是545550965

  5. wmt1708 说:

    很好,谢谢!!!能加你的QQ吗?我的是545550965

    • 木子 说:

      谢谢你的支持,我很少上QQ,公司在上班时间不允许开IM软件。有问题可以发mail给我,jianphu(@)163.com

  6. stonepeter 说:

    用这个SDK能开发Windows桌面应用程序么?QQ号码登录怎么处理的?

    • 木子 说:

      不能的。

      • 小强 说:

        在腾讯上为什么申请 key 和secret 时还得 需要 域名 :cry: 认证呢? 不支持winform程序? facebook ,twitter 都支持winform的啊。。

  7. TJ 说:

    感谢提供这个API,不过有一个问题想问一下,腾讯的服务器是linux的,那么用.NET写的应用怎么部署到腾讯的服务器上面呢?难道要用mono不成?

    • 木子 说:

      确实是这样的,我现在正在处理把windows平台开发的.NET程序迁移到opensuse中。

  8. 汪先生 说:

    为什么我用vs2008打不开呢?

    • 木子 说:

      VS2010的项目。

  9. lifeonfoot 说:

    下载地址失效了,能否发我一份至邮箱?谢谢!
    pass_age_@163.com

    • 木子 说:

      已经发了,请查收

  10. Lex 说:

    T_T,用了你的源码,出现了奇怪的问题。
    如果按你所说的这样调用(感觉这样调用不太对)
    User user = null; try{ user = QQClient.Instance.GetUserInfo(“openId”, “openKey”); } catch (WebException ex) { throw ex; }
    提示错误:在写入所有字节之前不能关闭流。
    if (swRequestWriter != null) swRequestWriter.Close();
    在这里出现错误了。
    然后我自己用新浪的OAuth登录的代码,获取到第三步的验证(QQ帐号登录后跳转到callback页面的参数)
    oauth_token=
    &openid=
    &oauth_signature=
    &oauth_vericode=
    &timestamp=
    尝试使用得到的openid来用你的源码登陆。(openkey我是用参数oauth_signature的值,不知道对不对)。也是提示上面的:在写入所有字节之前不能关闭流。的错误。
    然后直接打开接口页面,提示{“ret”:-183,”msg”:”client request’s app name is not existed”}错误。
    地址的参数是这样的:
    http://openapi.pengyou.qq.com/user/info?openid=D9023B1FA73D670FAEDBC22741065DC8&openkey=rXvkx1MxURKWE6XtUzS8lC7PzAE%3D&appid=2&appkey=4dd1af55f7f140ac8827518472af3d87&appname=bloglist

    我得到的参数是这样的
    oauth_token=11795272807392087043
    &openid=D9023B1FA73D670FAEDBC22741065DC8
    &oauth_signature=rXvkx1MxURKWE6XtUzS8lC7PzAE%3D
    &oauth_vericode=1257111174
    &timestamp=1302745980

    请问是哪里出错了。麻烦帮忙解决一下。谢谢。

  11. Lex 说:

    openkey到底是哪个啊,好晕啊。我上面是用oauth_signature=rXvkx1MxURKWE6XtUzS8lC7PzAE%3D
    来作openkey的。
    腾讯的文档里面也没有讲到openkey到底是哪个。郁闷死了。

    • 木子 说:

      OpenKey是腾讯的iframe调用你的网页时,iframe的url传给你的。

  12. kerro0506 说:

    下载不了 能发一份给我吗?Email:kerro0506@163.com

    • 木子 说:

      已经发了,请查收邮箱

  13. dylan 说:

    我这边页下载不了。有能下的可以分享一下吗?f_fynx@hotmail.com 谢谢

    • 木子 说:

      已经发给你了

  14. lany 说:

    下载不了 能发一份给我吗?Email:317116564@qq.com

    • 木子 说:

      已经发给你了^_^

  15. 阿拉丁 说:

    我这边网页也下载不了呀,能分享一下吗?649591720@qq.com,谢谢了

    • 木子 说:

      发给你了^_^如果发现BUG请反馈给我,谢谢

      • ekin 说:

        麻烦传一个腾讯社区开放平台C# SDK给我,谢谢

  16. 蛋疼的孩子 说:

    不知道为什么,我这边也下载不了,非常头晕,能否也分享一下吗?707277476@qq.com,在此谢谢啦!

  17. 沉舟 说:

    下载不了。能否发一份给我 hw1200@yeah.net

  18. Cody 说:

    部署前的处理,可不可以简单说一下呀

  19. Cody 说:

    不知道为什么box.net上面下载不了,给我发一份吧 麻烦了 mengdesen09@qq.com

  20. .net爱好者 说:

    我这边网页也下载不了呀,能分享一下吗?120733889@qq.com,谢谢了

  21. kyo 说:

    下载不了,能不能麻烦发一份到我的邮箱 mclkyo@163.com 呢?谢谢

  22. 大雄 说:

    能否换个下载链接啊,我也下载不了

  23. 大雄 说:

    renchuxiong@163.com,我也需要一份

  24. ray 说:

    我也下载不了啊。。可以给我发一份吗。。wryl@163.com。。多谢

  25. 有何不可 说:

    怎么下载不了啊,发给我,可以吗??

  26. donghai 说:

    下载不了 能发一份给我吗?Email:3716162@qq.com

  27. 东东 说:

    无法下载。。。。能否分享一下?superwdd@qq.com谢谢了

  28. chenhuanxu 说:

    下载不了哦 可以发给我一份吗?谢谢
    154523595@qq.com

  29. Enno 说:

    Hi,哥们,SDK下载失败,能否发我邮箱。谢谢!

    • Enno 说:

      邮箱是enno.china@gmail.com

  30. 李俊 说:

    下载不了,麻烦email份junelee1211@qq.com

  31. zhijian 说:

    你好!我的网页也下载不了,能传份给我吗?谢谢!
    邮箱:1501673974@qq.com

  32. 叶志鹏 说:

    报告,下载不了了..分享给我,我放空间让大家下载吧…43264789@qq.com 谢谢啦..

  33. 叶志鹏 说:

    我没看你代码怎么样..不过
    User user = null; try{ user = QQClient.Instance.GetUserInfo(“openId”, “openKey”); } catch (WebException ex) { throw ex; }
    外层调用你的操作竟然要try,这个有些浪费哦..异常应该在你方法里就处理掉才对..

    • 木子 说:

      外层不需要try,获取单个对象,你肯定要做一次null判断的。

  34. Harvey 说:

    下载不了了,修复一下链接地址吧,谢谢!

  35. lin 说:

    网页下载不了,楼主能发一份给我么?万分感谢! linxingwanghfut@163.com

  36. fish 说:

    我这边网页也下载不了呀,能分享一下吗?232048843@qq.com,谢谢了

  37. 一神 说:

    给我发一份谢谢 shaohongli@msn.com

  38. zhijian 说:

    你好!我是用vs2008的,我添加引用QQToolkit后,并且在cs页面用QQToolkit.QQClient怎么只能获取到Instance而获取不到QQClient下的方法?请帮我看看。

    • zhijian 说:

      不好意思!我现在获取到了!

  39. zhijian 说:

    请问老大,这个是不是只能获取好友的openid而不能获取好友的昵称,性别,等其他信息??
    那如何获取好友链的昵称头像等这些信息呢?

  40. 木子 说:

    各位同学您,SDK已经发到你们的邮箱。

  41. 李晶晶 说:

    你好能发给我一份吗?

    • 李晶晶 说:

      补充我的邮箱地址sbitxg521@163.com

  42. v5 说:

    有没有一个例子啊?

  43. kickerqing 说:

    SDK下载不了,能麻烦博主发送一下到邮箱吗?谢谢啦^_^
    kickerqing@hotmail.com

  44. 洪励 说:

    下载不了哦 可以发给我一份吗?谢谢
    kingang@126.com

  45. lancehua 说:

    楼主能把以下php代码用c#的实现源代码粘出来吗?或发到我邮箱里,非常感谢
    $oauth_signature= base64_encode(hash_hmac(“sha1″, $源串, $密钥, true));
    邮箱:huameng@live.com

  46. JG 说:

    不知道怎么用啊 求教

  47. 刘涛 说:

    给一份谢谢,,,,dzlt135@163.com

  48. 刷子 说:

    麻烦发一个给我,多谢楼主了,fangyuan79@sina.com

    • 木子 说:

      原来是box.net的不能下载,现在换成google code的了,不再单独发邮件了,建议不能下载的同学用代理试下哈。

  49. Gavin 说:

    非常需要这个SDK~楼主能发一个给我吗?谢谢~610381435@QQ.com

发表评论

*

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: