原创

Android 实现新浪微博第三方登录方法

        微博 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 页面,具体代码如下:

<activity android:name=".OAuthActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="weibo4android" android:host="OAuthActivity" /> 
    </intent-filter>
</activity>


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();
 
}

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信