Android應用開發:社會化平臺登入接入
引言
最近利用閒暇跑通了微博、QQ、G+在Android上的登入接入功能,雖然不至於說坎坷頗多,但是小麻煩也不少,特此記錄一下。另,微信的接入是要花300大洋的,所以沒有嘗試。
QQ登入接入
開放平臺地址:http://open.qq.com/
Android接入文件:http://wiki.open.qq.com/wiki/Android_API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E
SDK下載:http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD
具體的接入配置等等文件中寫的很詳細了,這裡並不進行說明。這裡需要注意的幾點是:
1. 需要引入的jar包有兩個,一個是mta_sdk,另一個是open_sdk,基礎包中只有一個open_sdk,別忘了去完整包中取一個mta_sdk出來,否則不能正常使用;
2. AndroidManifest.xml中對於騰訊的meta_data宣告中,appid前必須有"tencent"字樣,是一個組合字串,而不只是appip;
3. 執行登入操作login時第二個SCOPE引數可以通過檢視http://wiki.open.qq.com/wiki/website/API%E5%88%97%E8%A1%A8 進行組裝,"all"代表全部許可權。
QQ登入接入比較簡單,文件全面切更新快,上手難度★
微博登入接入
開放平臺地址:http://open.weibo.com/
Android接入文件:https://github.com/sinaweibosdk/weibo_android_sdk/blob/master/%E5%BE%AE%E5%8D%9AAndroid%E5%B9%B3%E5%8F%B0SDK%E6%96%87%E6%A1%A3V2.5.0.pdf
SDK下載:http://open.weibo.com/wiki/%E7%A7%BB%E5%8A%A8%E5%BA%94%E7%94%A8#.E7.A7.BB.E5.8A.A8SDK.E4.B8.8B.E8.BD.BD
沒錯,是github上的。剛剛接觸的時候我也是一臉黑線,什麼跟什麼啊,SDK下載不是直接下載而是跳到github,文件也不好好寫在自己的網站上,openapi那些介面也要拿到github上再封一層?而文件中的示例程式碼又直接用了二次封裝的,只能說:對於開發者不夠友好,過於沉迷裝逼模式。想好好照著文件step by step的話,把github中的https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/demo-src/WeiboSDK/src/com/sina/weibo/sdk/openapi 拿下來放到自己的工程中修改好import後再看吧。
需要注意的點是:
1. 一定要在後臺配置好登入後的回撥網址,否則會出現錯誤;
2. 應用簽名需要的是MD5,這個需要在手機上安裝微博的一個生成簽名的apk,此簽名非彼簽名,只是一串數值,並不是apk的簽名檔案;
微博登入接入比QQ要麻煩多了,一會github一會微博的網站,逼格太高了,上手難度★★★★☆
G+登入接入
開放平臺地址:https://developers.google.com/+/mobile/android/
API控制檯地址:https://code.google.com/apis/console/
類參考:https://developer.android.com/intl/zh-cn/reference/gms-packages.html
其sdk是AndroidSDK中的google-play-server字樣,gradle中方法:
dependencies {
compile 'com.google.android.gms:play-services:5.2.08'
}
G+接入最麻煩的地方在於GoogleAPI控制檯的配置,不過按照其文件step by step的話,也沒有什麼大問題,最需要注意的一些地方是:
1. API控制檯中一定要事先配置好“API和驗證”的“同意介面”,如果這裡不配置好的話,點了什麼也出不來;
2. 注意G+登入按鈕的設計規範,Google特意強調的:https://developers.google.com/+/branding-guidelines#sign-in-button
3. 網路問題。由於眾所周知的原因,請注意除錯時的網路狀況;
4. 若手機不支援GMS框架,那麼也並不支援G+登入,所以請先檢查GMS的支援情況,再決定是否顯示G+登入按鈕吧;
5. 文件更新不及時,有的已經廢棄了的介面文件中還在blabla的教人怎麼用,而且到程式碼中也沒有一些介面,建議使用時候只是走一遍引導文件,而後去看類參考;
6. 文件中關於登入的setVisibleActivities介面已不存在,用setActions替代;
7. SCOPE在sdk包中有類定義,對應類參考可以方便的知道哪個是哪個。
G+登入接入應該算是最複雜的了,誰讓Google擁有全世界最先進的帳號系統呢,文件的更新不及時真的是最痛的地方,不過完善的類參考絕對可以彌補了。上手難度★★★★★