微博 Android 平台 SDK 为第三方应用提供了简单易用的微博API调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权登陆,并提供微博分享功能,可直接通过微博官方客户端分享微博。
Android 实现新浪微博第三方登录方法,具体步骤如下:
1.下载微博 SDK,下载地址http://open.weibo.com/wiki/SDK#Android_SDK ,导入微博 jar包 android-support-v4.jar 和 weibosdkcore.jar
2.从 github 中下载新浪微博demo_src,把demo包的 SDK 导入项目中
3.将 demo 中的constants 参数设置为申请的新浪微博给出的相关参数
4.新浪微博 SDK 中有 Demo 演示如何通过 oauth认证,认证和使用流程如下:
1)在/weibo4android/src/weibo4android/Weibo.java 设置App Key 和App Secret ,获取地址 http://open.weibo.com/webmaster/info/basic?siteid=1650065615,具体代码如下:public static String CONSUMER_KEY = "xxxxxxxx";
public static String CONSUMER_SECRET = "xxxxxxxxxxxxxxxxxxxxxxxx";
2)在/weibo4android/examples/weibo4android/androidexamples/AndroidExample.java中,使用App Key 和App Secret参数,具体代码如下:System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
3)通过http post方式向服务提供方请求获得RequestToken,参数 "weibo4android://OAuthActivity" 为回调URL,即用户对第三方应用授权后会通过此URL返回第三方应用, 回调URL作为请求参数传递给服务提供方,具体代码如下:RequestToken requestToken = weibo.getOAuthRequestToken("weibo4android://OAuthActivity");
4)将用户引导至新浪微博授权页面,具体代码如下:Uri uri = Uri.parse(requestToken.getAuthenticationURL()+ "&display=mobile");
startActivity(new Intent(Intent.ACTION_VIEW, uri));
5)授权页面要求用户输入用户名和密码授权完成之后,服务端会通过回调URL将用户引导至客户端 OAuthActivity 页面,具体代码如下:
6)客户端根据临时令牌和用户 oauth_verifier 授权码从服务端获取访问 Access Token,具体代码如下:Uri uri=this.getIntent().getData();
RequestToken requestToken= OAuthConstant.getInstance().getRequestToken();
AccessToken accessToken=requestToken.getAccessToken(uri.getQueryParameter("oauth_verifier"));
7)获得 Access Token 后使用API接口获得用户信息,具体代码如下:Weibo weibo=OAuthConstant.getInstance().getWeibo();
weibo.setToken(OAuthConstant.getInstance().getToken(), OAuthConstant.getInstance().getTokenSecret());
String[] args = new String[2];
args[0]=OAuthConstant.getInstance().getToken();
args[1]=OAuthConstant.getInstance().getTokenSecret();
try {
GetFollowers.main(args);
} catch (Exception e) {
e.printStackTrace();
}