Android三方登录遇到的一些坑

项目临时要加QQ,新浪微博的三方登录,没有用友盟之类的三方组件,用官方的sdk。
之前没有做过三方登录,我感觉是一个很简单的东西,实际上就是很简单的东西,主要就是Android Studio 给我带来的困扰,把Android Studio更新到了2.2-preview3,出现了各种问题,不是项目编译通过不能安装,就是gradle报各种错误,折腾了两天,把As换到了2.1.2Beta版才恢复正常。

初始

到开发网站注册应用,以及引入SDK这些简单的就不多说了,官方文档上都有。

新浪的开发者平台
腾讯开发者平台

主要说一下需要注意些什么:

  • 1 签名的填写,以前新浪平台 debug,release版的签名都可以填写,好像现在只能填写release的签名,用签名工具生成签名的时候注意要用release版本的apk,或者在本地使debug,release的签名一样。
  • 2 **授权回调页 ,用默认的就可以,新浪建议的是https://api.weibo.com/oauth2/default.html
  • 3 appkey和appId 一定要填对,腾讯好像只做登录的话,没有用到appKey。
  • 4 新浪sdk的引入:
    ** 1)在集成微博SDK前,有两种方式来集成微博SDK:**
    直接导入weibosdkcore.jar:适用于只需要授权、分享、网络请求框架功能的项目

我的项目中要获取三方用户信息然后再去自己的服务器注册登录,虽然调用了openApi,但是只是一些基础的接口,所以引入Jar包就可以*

引用WeiboSDK工程(Library):适用于微博授权、分享,以及需要登陆按钮、调用OpenAPI的项目
2)下面简述下两种导入方式的实现:
方式一:直接导入weibosdkcore.jar
将官方的提供SDK JAR包(weibosdkcore.jar)放到工程的libs目录下
方式二:引用WeiboSDK工程(Library)

注意: 无论使用哪一种方式,都需要先将demo 中lib目录下的对应的全部 libweibosdkcore.so文件目录 拷贝到你的目标工程中Demo工程中的weibosdkcore.jar与github上的weibosdkcore_v3.x.x.jar包是同一个。

下面说一下Android Studio引入so库的方式
直接在main下面建立jniLibs文件夹,把so文件粘贴进去即可。

好了,前期配置就说到这里。

接下来说一说代码编写
新浪:
新浪的帮助文档已经说的很清楚,也没什么可说的了,就说一下我遇到的问题吧。
1.在有客户端的情况下,到授权页面闪退。
原因:我的回调是写在Fragment中的,Fragment 的onActivityResult 接收不到。
解决办法:在Activity中的onActivityResult中把接收到的回调传给Fragment的onActivityResult。

if(requestCode == Constants.RequestCode.WEIBO_LOGIN){
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_login);   
fragment.onActivityResult(requestCode,resultCode,data);}```
**腾讯:**
腾讯没什么好说的,还是那句话,[官方文档](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)很清楚。

推荐阅读更多精彩内容