Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
Posted llguanli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题相关的知识,希望对你有一定的参考价值。
前言
近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清。这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步骤,这里要写的东西是官方文档里面没用说明的一些问题,也是我自己在摸索的过程中发现和解决的问题。
一、微博登录和分享
微博sdk的集成过程官方下载的sdk文档中已经基本说明清楚了。这里不提了,说两个常常遇到过问题。
1、登录后停留在授权页,也就是登录后没有返回我们的应用。排除代码方面的原因后。还有几个原因导致这个问题的发生。
a.在应用程序的管理中心中没用填写应用程序包名和签名。或者在高级信息里面没用填写oauth2.0授权设置
假设这个地方填写错误或者没用填写的话,会导致授权后无法返回应用。
b.包名和签名填写正确而且填写了oauth授权页,还是出现无法返回应用的情况
这个时候就要考虑你的appkey的问题了,博主最開始是跟ios共用一个key的,后来查看官方说明里面有一条是尽量避免ios和android平台使用同一appkey。因此,又为android又一次申请了一个appkey,最后登录授权完毕后就成功的返回了应用。
所以遇到各项參数配置正确。代码正确可是还是无法返回应用的开发人员,建议又一次独立申请一个appkey,解决问题。
2、第二个问题也是比較常见的,sso package or sign error
这样的情况通常是应用程序签名的问题造成的,首先确认上面的签名和包名是否填写正确,包名这个就不用多说了,清单文件里的manifest节点下的package属性的值就是包名
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yang.abc"这里着重说一下签名的问题,由于这个问题也是常常导致出现这个sso package or sign error出现的原因。
签名的话用的是微博官方提供的签名工具,这里有个须要注意的地方:签名是依据你装在手机上面的应用来进行的。假设你的应用开发使用的是debug.keystore也就是eclipse默认的方式安装到手机上的,那么这个签名就是不是正式版使用的。假设你终于使用公布应用的时候还使用这个签名。那么这个key非常显然是不对的,就会发现上面的sso package or sign error错误。所以假设你的应用终于是要上线的,那么将apk安装到签名导出安装到手机后,再使用微博官方提供的签名工具执行一遍,得到签名。将这个签名填到管理中心的基本信息中,那么这个appkey才是合法的,使用不会出现上述的问题。
3、另一个问题,至今不知道是什么原因造成的,还要继续探索。
使用sso登录的时候。当手机上已经安装了微博client,会正常调用sso登录
当手机上没有安装微博client时,依照常理应该是调用网页登录,可是却出现了空指针的异常,并且debug会发现对象根本不为空,这个问题一直困扰着我,等找到解决方法了。补充上这一块。
二、微信第三方登录和分享
一个非经常见的问题:分享的时候假设没有登录微信,调出微信登录窗体。正确登录后点击分享无反应。
这个问题查了下,发现非常多人出现了。终于,经过排查,确认是申请的appkey信息有误造成的。
事实上这个问题也是签名的错误的原因造成的。debug.keystore和公布的keystore不同导致了这个问题。
在使用微信官方提供的签名工具获取应用签名的时候。要首先在手机上安装实用公布keystore签名的应用,然后得到的签名才是正确的签名,签名正确了使用appkey才不会出现上面的无法分享或者登录的问题。
以上是关于Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题的主要内容,如果未能解决你的问题,请参考以下文章
如何设计 QQ微信微博Github 等等,第三方账号登陆 ?(附表设计)
如何设计 QQ微信微博Github 等第三方账号登陆 ?(附表设计)