一、新浪微博開放平台中的配置
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);
