需求;
1.最近公司使用三方登陆,分享。接触到qq,微信,微博等三方机构的借口sdk
2. 之前做了一段时间,没有进行总结。做这个功能的时候,折腾的不行,没有之前的任何经验,做的时候,心里没底
3.这篇文章是解决问题后的心得,也是对自己工作的肯定。
建议:做这个的时候,必须弄懂官方的文档。然后下载官方提供的demo 跑一下。不是为了让一下就懂。而是让自己有的大致的方向。做出来是什么样子。找点自信。
这点很重要。
1.先说qq登陆方面的,
1,首先得到qq互联上面,注册,建立应用, 获得appid 密码等。
使用qq登陆功能项目必修通过审核并且处于上线状态
处于这个状态就算可以进行测试。qq登陆了。(我们的应用是按时发布。所以上面显示审核中...这点不必纠结,qq互联有的好的功能。就是自动化测试,可以生成文档。减少审核时间)
我遇到的问题,最多的就是粗心。之前一个同事。搞了一段时间弄不通。也排查不出来错误。最后我接手排查了一整天。最后原因竟然是包名中的 " . " ---> , 就是 顿号
写成了逗号了。相信大家不会犯这样的错误
另一个是之前不懂。直接把debug 包,默认签名传上去了。之后传上一个正式包。结果可想而知。包名冲突。无法通过审核,找客服,排查签名不正确。更改签名,需要的手续比较多,而且据说只会帮助处理两次。超过两次。可能需要有偿了。千万不要为了方便,吧默认签名传到qq互联上面。
-------
为什么没有贴具体的实现代码。很简单。官方文档里面已经非常详细的给我们列出来了。直接粘里面。就可以跑。只要记住 app中想接入 qq登陆。app必须通过审核。记住这点。做出来一点问题也没有。
微博绑定:
微博绑定必须的条件
1.应用的签名信息和注册到微博三方接口上的签名需要保持一致,
2.使用 jdk 中自带的 keytool 查看 ,具体书写方式,见网上 ---如果打开debug,keystore 密码是android 这个我找了好久啊
3.微博可以设置几个签名务必将debug签名注册上面,这样才可以调试,否则绑定不成功。
如图( 上面签名是正式的签名 ---下面是debug签名。发布之前使用的--很重要。不然签名不对。下面肯定拿不到 access-token)后面的步骤就走不下去了
4.微博 具体查看 微博官方文档,具体的链接地址稍后我会贴出来。
http://michaelye1988.iteye.com/blog/1637951
5.回想一下 难点也是有几个。按照官网上提供的 开发文档进行设置。基本理解,就可以做出来了。
我遇到的问题。sso认证时候,总是无法获取到access_token 最后解决原因是onActivityResult()回调没有按照文档上面说的,
项目中使用的是fragment 原来以为fragment中复写的 onactivityresult() 就可以接收到回调。 查看 官方文档 规定是在activity中复写 onactivityresult()。结果回调接口不
触发,就一直卡在哪里。 原因找到了,解决自然是时间上的问题了。
有两种方法可以解决这个问题
1. 比较直接 的方法是将fragment 改成activity 然后复写 onactivityresult() 接收回调
2.在fragment依附的activity onActivityresult()中调用子fragment的onActivityResult() --在主activity中使用给fragment添加tag ,然后通过
fragmentmanage.findfragmenttag() 得到fragment,然后间接的得到fragment 对象调用 fragment中的 onActivityResult()。为什么这样调用,因为我们是在fragment中初始
化sso对象的 在 是在activity的onactivityreslut()中调用sso的回调。所以需要这样处理。
网上关于qq 登陆和微博登陆例子很多,这里只是,将自认为注意的点,写出来,供用到的同学。参考
如果过程中遇到什么疑问。--可以留言。