第二届 Google 暑期大学生博客分享大赛 - 2011 Android 成长篇
最近对android平台上的新浪微博授权与发送很感兴趣,所以就写写代码,动手试试。
开发新浪微博 首先须要使用官方提供的API接口 weibo4android.jar
官方下载地址:http://code.google.com/p/weibo4j/downloads/list
首先须要在项目中引入新浪微博官方的API jar包
如图所示:

任何一个开发者都需要申请新浪微博的ConsumerKey 和 ConsumerSecret
申请地址:http://open.weibo.com/devel.php
点击创建应用根据提示一步一步来 这里笔者就不详细说明了
下面是代码部分请认真阅读
//consumerKey 与 consumerSecret 须要自己去官方申请
System.setProperty("weibo4j.oauth.consumerKey","XXXX");
System.setProperty("weibo4j.oauth.consumerSecret","XXXX");
Weibo weibo = new Weibo();
String userId = "XXXX";
//新浪微博的帐号
String passWord = "XXXX";
//新浪微博的密码
try {
weibo.getXAuthAccessToken(userId, passWord,"client_auth");
weibo.updateStatus("发表一条新浪微博");}
catch (WeiboException e) {
e.printStackTrace();
if(e.getStatusCode() == 400) {
//内容重复,新浪微博不允许重复的内容发布 如果内容重复会在这里抛出异常
}else if (e.getStatusCode() == 403) {
//帐号密码错误
}
return;
}
帐号密码授权只需要一次
大功告成 这样就授权成功并且发送了一条微薄 不过这样还不是完美 因为如果每次都用同样的帐号发送微薄的话 没有必要每次都授权 授权成功一次后 就可以把Token 与 TokenSecret 存下来 以后在发送微薄只须要把Token 与 TokenSecret 读出来就可以直接发。
储存Token 与 TokenSecret
通过帐号密码只需要授权一次
try {
AccessToken accessToken = weibo.getXAuthAccessToke(userId,passWord,"client_auth");
String Token = accessToken.getToken();
String TokenSecret = accessToken.getTokenSecret();
//在这里拿到了 Token 与 TokenSecret 可以把它存在Shared Preferences 中以后每次独取出来就可以用
weibo.updateStatus("将Token 与 TokenSecret 存入 Shared Preferences ");
} catch (WeiboException e) {}
读取Token 与 TokenSecret
读取到之前授权的KEY
try {
//Token与TokenSecret 可以在Shared Preferences 中取得之前存的内容
String Token = null;
String TokenSecret = null;
weibo.setOAuthAccessToken(Token, TokenSecret);
//这样就不用每次都通过帐号密码获取
AccessToken了weibo.updateStatus("在Shared Preferences 中取得Token与TokenSecret");
} catch (WeiboException e) {}
微薄的异常类WeiboException
我们使用API接口 出现的异常WeiboException 会帮我们捕获下来比如
帐号密码错误:e.getStatusCode() = 403
重复发送微薄:e.getStatusCode() = 400
等等,代码实现的话我们可以在底层把这些异常throws 到上层,在上面去处理这些异常
下面这个链接是新浪官方提供的API错误代码 大家可以根据须要仔细阅读
http://open.weibo.com/wiki/index.php/Help/error
参考文献:http://blog.csdn.net/xys289187120/article/details/6571312
最新评论