Android集成新浪微博第三方帳號登錄


一、新浪微博開放平台中的配置

1、地址:http://open.weibo.com/,登錄帳號(需要進行身份認證,提交身份證等信息)創建移動應用

2、填寫相關信息進行創建,創建成功后進行應用信息的完善。

3、包名從項目中獲取,簽名可以通過提供的簽名工具獲取,也可以通過獲取MD5的值將大寫變小寫,去掉冒號即可(使用不同的簽名文件生成的MD5值是不一樣的)。下載地址填寫正常的網址格式即可。

4、填寫填寫,提交保存。

二、接入SDK到項目中

以Android Studio集成為例:在根目錄的build.gradle中設置中央倉庫,maven { url "https://dl.bintray.com/thelasterstar/maven/" }

 1 buildscript {
 2     repositories {
 3         jcenter()
 4         maven { url "https://dl.bintray.com/thelasterstar/maven/" }
 5     }
 6     dependencies {
 7         classpath 'com.android.tools.build:gradle:2.3.3'
 8 
 9         // NOTE: Do not place your application dependencies here; they belong
10         // in the individual module build.gradle files
11     }
12 }
13 
14 allprojects {
15     repositories {
16         jcenter()
17         maven { url "https://dl.bintray.com/thelasterstar/maven/" }
18     }
19 }

在需要引入SDK的module目錄的build.gradle中引入sdk-core依賴,compile 'com.sina.weibo.sdk:core:4.1.0:openDefaultRelease@aar'。

compile 'com.sina.weibo.sdk:core:4.1.0:openDefaultRelease@aar'

三、認證授權

1.首先初始化WbSdk對象(在你的應用的Application或者調用SDK功能代碼前) 

WbSdk.install(this,new AuthInfo(this, Constants.APP_KEY,Constants.REDIRECT_URL,Constants.SCOPE));

AuthInfo維護了授權需要的基本新,APP_KEY(開發平台生成的唯一key)、REDIRECT_URI(授權回調)、SCOPE(需要請求的權限功能,默認參考demo中的數據)。

2.初始化SsoHandler對象

mSsoHandler = new SsoHandler(MainActivity.this);SsoHandler是發起授權的核心類

3.調用授權

SDK中有三種模式的授權方案:

1)AuthorizeClientSSo:只通過微博客戶端進行授權

mSsoHandler.authorizeClientSso(new SelfWbAuthListener());

2)AuthorizeWeb:通過SDK自帶的WebView打開H5頁面進行授權

mSsoHandler.authorizeWeb(new SelfWbAuthListener());

3)Authorize:如果安裝了微博客戶端則通過客戶端授權,否則通過Web方式授權

mSsoHandler.authorize(new SelfWbAuthListener());

SelfWbAuthListener:授權結果回調,實現WbAuthListener接口

onSuccess:授權成功回調,返回Oauth2AccessToken對象,封裝了登錄相關信息

onFailure:授權失敗回調

cancel:授權取消回調

注意:要接受到授權的相關數據,必須在當前Activity或者Fragment的onActivityResult方法中添加SSOhandler的回調,如下圖

1 @Override
2 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
3     super.onActivityResult(requestCode, resultCode, data);
4     // SSO授權回調,必須重寫
5     if (mSsoHandler != null) {
6         mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
7     }
8 }

4.在manifest中設置權限

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

四、通過接口獲取用戶信息

注意:新版本的sdk已經移除了openapi功能(包括獲取用戶信息等方法),如果你想在授權后獲取用戶信息,請參考open api接口文檔 微博開放平台api,使用自己的網絡引擎請求數據。 

請求url格式(https://api.weibo.com/2/users/show.json?access_token=&uid=),只能使用Get方式進行請求。

微博開放API地址: 

http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI

五、微博分享

1.在分享當前頁面的Activity實現WbShareCallback接口,重寫三個方法實現分享結果回調

onWbShareSuccess()、onWbShareCancel()、onWbShareFail()

2.初始化WbShareHandler,並注冊應用

mWbShareHandler = new WbShareHandler(this); 

mWbShareHandler.registerApp();

3.分享微博

WeiboMultiMessage weiboMultiMessage = new WeiboMultiMessage();

weiboMultiMessage.textObject = getTextObj(); 

mWbShareHandler.shareMessage(weiboMultiMessage,false);

1 private TextObject getTextObj() {
2     TextObject textObject = new TextObject();
3     textObject.text = "我正在使用微博客戶端發博器分享文字";
4     textObject.title = "1024wawa";
5     textObject.actionUrl = "http://www.baidu.com";
6     return textObject;
7 }

4.處理分享回調,重寫onNewIntent方法

mWbShareHandler.doResultIntent(intent,this);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM