android 新浪微博平臺開發
一、先需要在新浪微博開放平臺註冊成爲一名開發者:
1、註冊完成後需要進行實名驗證。
二、在我的應用中創建應用,填寫相關信息。
1、Android包名: 包名必須是你即將要使用新浪微博平臺的應用的包名。
在 AndroidManifest.xml 文件中找到package="android.weibo_gjk.com.weibo", 引號中的就是包名。
2、Android簽名:
a、簽名欄後面有個鏈接:獲取簽名工具,點擊鏈接下載對應的apk工具,安裝到手機或者模擬機上。
b、在安裝好籤名的工具的手機或者模擬機上**安裝好你需要調試的app**。(必須安裝,空app都行,要不然獲取簽名工具的app獲取不到MD5簽名)
c、打開簽名工具,在包名欄填寫需要簽名也就是步驟b已經安裝好的app的包名,生成MD5簽名。
上面三部提到的app都是同一個,包名也必須一致!複製生成的包名,填寫到對應欄。
3、把其他必要的信息填寫完成,拷貝應用生成的 App key和App Secret備用!
4、點開應用-應用信息-高級信息-填寫授權回調頁
5、點開應用-應用信息-測試信息-填寫測試賬號(應用未審覈發佈之前只能用測試賬號訪問)
三、修改app的默認簽名文件。
新浪微博提供了簽名文件,我們必須要修改app默認的簽名文件
1、新建簽名文件。android studio提供了自己創建簽名文件的功能。
創建修改簽名文件詳解:http://blog.csdn.net/nimasike/article/details/51457229
2、修改簽名文件。
四、下載新浪微博SDK項目加載SO文件。
1、找到SDK下載的連接:https://github.com/sinaweibosdk/weibo_android_sdk
2、下載後解壓,將SO文件複製到下面main目錄下新建的文件夾jniLibs下
3、將新浪微博的SDK文件複製到項目App目錄的libs文件夾下,再右鍵選擇 Add as library
4、驗證SDK是否成功引用。在配置文件中,執行完步驟三之後看到如圖所示語句表示引用成功:
到此準備工作做完了,可以測試授權登錄了:
public class LandingpageActivity extends BaseActivty {
private SsoHandler mSssoSsoHandler;
private AuthInfo mAuthInfo;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAuthInfo = new AuthInfo(getApplicationContext(), CWConstant.APP_KEY, CWConstant.REDIRECT_URL, CWConstant.SCOPE);
//CWConstant.APP_KEY 常量:上面步驟二第3小點保存的Android key
//REDIRECT_URL = "https://api.weibo.com/oauth2/default.html" 常量,回調地址
//SCOPE ="email,direct_messages_read,direct_messages_write,"+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"+ "follow_app_official_microblog," + "invitation_write"; 常量,應用申請的高級權限
mSssoSsoHandler = new SsoHandler(this, mAuthInfo);
mSssoSsoHandler.authorize(new WeiboAuthListener() { //登錄監聽事件
@Override
public void onComplete(Bundle bundle) {
//bundle 登錄成功反饋的數據包
Log.d("onComplete", bundle + "");
}
@Override
public void onWeiboException(WeiboException e) {
}
@Override
public void onCancel() {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(null != mSssoSsoHandler){//調用回調函數
mSssoSsoHandler.authorizeCallBack(requestCode,resultCode,data);
}
}
}