引言
最近利用闲暇跑通了微博、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拥有全世界最先进的帐号系统呢,文档的更新不及时真的是最痛的地方,不过完善的类参考绝对可以弥补了。上手难度★★★★★