項(xiàng)目臨時(shí)要加QQ坑匠,新浪微博的三方登錄,沒(méi)有用友盟之類(lèi)的三方組件卧惜,用官方的sdk厘灼。
之前沒(méi)有做過(guò)三方登錄夹纫,我感覺(jué)是一個(gè)很簡(jiǎn)單的東西,實(shí)際上就是很簡(jiǎn)單的東西设凹,主要就是Android Studio 給我?guī)?lái)的困擾舰讹,把Android Studio更新到了2.2-preview3,出現(xiàn)了各種問(wèn)題闪朱,不是項(xiàng)目編譯通過(guò)不能安裝月匣,就是gradle報(bào)各種錯(cuò)誤,折騰了兩天奋姿,把As換到了2.1.2Beta版才恢復(fù)正常锄开。
初始
到開(kāi)發(fā)網(wǎng)站注冊(cè)應(yīng)用,以及引入SDK這些簡(jiǎn)單的就不多說(shuō)了称诗,官方文檔上都有萍悴。
主要說(shuō)一下需要注意些什么:
- 1 簽名的填寫(xiě),以前新浪平臺(tái) debug寓免,release版的簽名都可以填寫(xiě)癣诱,好像現(xiàn)在只能填寫(xiě)release的簽名,用簽名工具生成簽名的時(shí)候注意要用release版本的apk再榄,或者在本地使debug狡刘,release的簽名一樣。
- 2 **授權(quán)回調(diào)頁(yè) ,用默認(rèn)的就可以困鸥,新浪建議的是https://api.weibo.com/oauth2/default.html
- 3 appkey和appId 一定要填對(duì)嗅蔬,騰訊好像只做登錄的話(huà),沒(méi)有用到appKey疾就。
- 4 新浪sdk的引入:
** 1)在集成微博SDK前澜术,有兩種方式來(lái)集成微博SDK:**
直接導(dǎo)入weibosdkcore.jar:適用于只需要授權(quán)、分享猬腰、網(wǎng)絡(luò)請(qǐng)求框架功能的項(xiàng)目
我的項(xiàng)目中要獲取三方用戶(hù)信息然后再去自己的服務(wù)器注冊(cè)登錄鸟废,雖然調(diào)用了openApi,但是只是一些基礎(chǔ)的接口姑荷,所以引入Jar包就可以*
引用WeiboSDK工程(Library):適用于微博授權(quán)盒延、分享,以及需要登陸按鈕鼠冕、調(diào)用OpenAPI的項(xiàng)目
2)下面簡(jiǎn)述下兩種導(dǎo)入方式的實(shí)現(xiàn):
方式一:直接導(dǎo)入weibosdkcore.jar
將官方的提供SDK JAR包(weibosdkcore.jar)放到工程的libs目錄下
方式二:引用WeiboSDK工程(Library)
注意: 無(wú)論使用哪一種方式添寺,都需要先將demo 中l(wèi)ib目錄下的對(duì)應(yīng)的全部 libweibosdkcore.so文件目錄 拷貝到你的目標(biāo)工程中Demo工程中的weibosdkcore.jar與github上的weibosdkcore_v3.x.x.jar包是同一個(gè)。
下面說(shuō)一下Android Studio引入so庫(kù)的方式:
直接在main下面建立jniLibs文件夾懈费,把so文件粘貼進(jìn)去即可计露。
好了,前期配置就說(shuō)到這里。
接下來(lái)說(shuō)一說(shuō)代碼編寫(xiě)
新浪:
新浪的幫助文檔已經(jīng)說(shuō)的很清楚票罐,也沒(méi)什么可說(shuō)的了叉趣,就說(shuō)一下我遇到的問(wèn)題吧。
1.在有客戶(hù)端的情況下该押,到授權(quán)頁(yè)面閃退疗杉。
原因:我的回調(diào)是寫(xiě)在Fragment中的,F(xiàn)ragment 的onActivityResult 接收不到蚕礼。
解決辦法:在Activity中的onActivityResult中把接收到的回調(diào)傳給Fragment的onActivityResult乡数。
if(requestCode == Constants.RequestCode.WEIBO_LOGIN){
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_login);
fragment.onActivityResult(requestCode,resultCode,data);}```
**騰訊:**
騰訊沒(méi)什么好說(shuō)的,還是那句話(huà)闻牡,[官方文檔](http://wiki.open.qq.com/wiki/%E7%A7%BB%E5%8A%A8%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5%E6%96%B0%E6%89%8B%E6%8C%87%E5%BC%95)很清楚。