首页 > 代码库 > Android应用之——微信微博sdk使用过程中的一些常见问题
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登录的时候,当手机上已经安装了微博客户端,会正常调用sso登录
当手机上没有安装微博客户端时,按照常理应该是调用网页登录,但是却出现了空指针的异常,而且debug会发现对象根本不为空,这个问题一直困扰着我,等找到解决方法了,补充上这一块。
二、微信第三方登录和分享
一个很常见的问题:分享的时候如果没有登录微信,调出微信登录窗口,正确登录后点击分享无反应。
这个问题查了下,发现很多人出现了。最终,经过排查,确认是申请的appkey信息有误造成的。
其实这个问题也是签名的错误的原因造成的,debug.keystore和发布的keystore不同导致了这个问题。
在使用微信官方提供的签名工具获取应用签名的时候,要首先在手机上安装有用发布keystore签名的应用,然后得到的签名才是正确的签名,签名正确了使用appkey才不会出现上面的无法分享或者登录的问题。