项目临时要加QQ,新浪微博的三方登录,没有用友盟之类的三方组件,用官方的sdk。

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

初始

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

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

1 签名的填写,以前新浪平台 debug,release版的签名都可以填写,好像现在只能填写release的签名,用签名工具生成签名的时候注意要用release版本的apk,或者在本地使debug,release的签名一样。

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);}```