这些天在使用新浪微博的API和SDK写些东东,客服告诉我要使用
oauth2 版本,因为第1代已经申请不到appKey了,于是我下载了一个java版本的sdk。下载地址:http://code.google.com/p/weibo4j/downloads/detail?name=weibo4j-oauth2-beta2.0.zip
以下,使用 weibo4j-oauth2-beta2.0.zip 的过程中发现的问题:
// 从新浪微博的登录页面callback后的处理
String code = request.getParameter("code");
// 第1步
Oauth oauth = new Oauth();
AccessToken token = oauth.getAccessTokenByCode(code);
// 第2步
Weibo weibo = new Weibo();
weibo.setToken(token.getAccessToken());
// 第3步
Account account = new Account();
// 以下是取得授权用户(也就是登录用户)的ID
account.getUid();
/**
可以看到问题出在第2步到第3步之间没有任何引用的关连,通过查看sdk的代码,发现其中的关连是Weibo.client
,而client的声明是public static HttpClient client = new HttpClient();
并且是通过以下方法对client中的token进行赋值:
public synchronized void setToken(String token) {
client.setToken(token);
}
首先,我没看懂setToken方法用到的synchronized
是起到什么作用……好吧,我承认学艺不精。
其次,从第2步到第3步之间的过渡如果没有进行线程同步,那么会出现account.getUid()
取得其它用户的uid的问题,至于怎么出现的你懂的……我擦,我表示“尼玛,坑爹呀”。
补充,如果这个sdk用于客户端并只允许单用户登录那就不存在什么问题了,可这个偏偏是通过
request.getParameter("code");
获得token的……至此,我觉得我技术生涯的BUG都弱爆了。
所以,蛋粹一地,拜托了!因为亿万人在看……最后,新浪微博API哥,太浪会出大问题的,当心VT二连让你超鬼。
*/
我表示并没有故意诋毁之意。只是以此来提醒正在使用或准备开发新浪微博app的弟兄们。
注:博文下方的下载链接是weibo4j-oauth2-beta2.0.zip(2012/04/09)文件快照。
分享到:
相关推荐
php新浪微博转发,发布微博apiSDK,里面有调用范例
新浪微博C#版SDK Demo 包含获取个人信息、获取会员好友信息。。。
开发微博应用的JAVA,SDK,文件中的是jar包,直接导入即可使用!
新浪微博java SDK应用,新浪微博java SDK应用新浪微博java SDK应用
这是sina提供的微博开发API,内有简单的例子提供帮助。
新浪微博开放平台的SDK,可以帮助你开放新浪微博第三方软件
微博开发javaSDK 博文链接:https://lxzqz.iteye.com/blog/2429673
用新浪微博登录第三方网站,php sdk文件,php可用
调试好的新浪微博SDK DEMO,下载后可以直接使用
新浪微博 Sina Weibo SDK 官方版
新浪微博java sdk,下载下来导入到java项目中就可以用
sina新浪微博登录JAVA版SDK weibo4j-oauth2-beta2.1.1.zip和weibo4j-1.2.0.zip
新浪微博AndroidSDK官网最新 V2.0.0
新浪微博 for Android SDK。
这是一个用于新浪微博的Delphi SDK
新浪微博Android SDK
新浪微博官方Java版Sdk,项目源代码,下载下来是个包含测试代码的整个SDK源代码,可以打包成jar文件方便调用,我这里打包成名为weibo4j-oauth2.jar的文件,注意先修改config.properties文件中的应用id、应用密码、回...
利用官方提供的JAVA SDK API相关接口实现了一个通过搜索接口采集微博内容的完整例子。
腾讯 微博 Java SDK
新浪微博sdk-java版-api-chm格式-中文版