前言

近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清。这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步骤,这里要写的东西是官方文档里面没用说明的一些问题,也是我自己在摸索的过程中发现和解决的问题。

一、微博登录和分享

微博sdk的集成过程官方下载的sdk文档中已经基本说明清楚了。这里不提了,说两个常常遇到过问题。

1、登录后停留在授权页,也就是登录后没有返回我们的应用。排除代码方面的原因后。还有几个原因导致这个问题的发生。

a.在应用程序的管理中心中没用填写应用程序包名和签名。或者在高级信息里面没用填写oauth2.0授权设置

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3NyX3lhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3NyX3lhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

假设这个地方填写错误或者没用填写的话,会导致授权后无法返回应用。

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登录分享使用过程中的一些常见问题的更多相关文章

  1. 【Demo】QQ,github,微博第三方社交登录

    本文主要讲解 集成 第三方社交账号登录 为什么会有这个需求? 主要是因为目前互联网的网站数量太多,如果在各个站点都注册一个账号 用户非常不容易记住每个账号的用户名和密码,并且非常难保证每个账号的密码足 ...

  2. 微信支付第三方sdk使用

    1.引入依赖:(对于依赖冲突自行解决) <dependency> <groupId>com.github.binarywang</groupId> <arti ...

  3. 学习Nodejs:《Node.js开发指南》微博项目express2迁移至express4过程中填的坑

    <Node.js开发指南>项目地址https://github.com/BYVoid/microblog好不容易找到的基础版教程,但书中是基于express2的,而现在用的是express ...

  4. qq 微信 微博 第三方分享

    <html> <head> <meta charset="utf-8"> <meta name="viewport" ...

  5. 微博第三方js-sdk登录

    https://open.weibo.com <meta property="wb:webmaster" content="your appkey" /& ...

  6. PHP 接入(第三方登录)QQ 登录 OAuth2.0 过程中遇到的坑

    前言 绝大多数网站都集成了第三方登录,降低了注册门槛,增强了用户体验.最近看了看 QQ 互联上 QQ 登录的接口文档.接入 QQ 登录的一般流程是这样的:先申请开发者 -> 然后创建应用(拿到一 ...

  7. qq登录,新浪微博登录接口申请过程中遇到的问题

    接口申请下来了,开发很容易的,参数传到就可以了.以前就做过这方面的开发,但是申请还是第一次,网上有关这方面的东东不是很多,所以记录一下申请过程. 1,qq登录接口申请 申请地址是:http://con ...

  8. 社会化登录分享-Android SDK的二次封装和使用

    本系列文章将第三方的登录分享功能进行二次封装,统一接口调用,简化了接不同平台登录分享的步骤. 0 系列文章 系列一 Android SDK的二次封装和使用 系列二 源码解析 系列三 微信SDK接入 系 ...

  9. unity 引入 android第三方sdk

    unity中调用java代码中介绍了unity调用android java代码的一些基础.引入android开发第三方sdk的操作跟调用java代码的操作相似,只是多了一步引入第三方jar. unit ...

随机推荐

  1. 使用fastcgi部署django应用

    1.fastcgi和cgi的区别 1)CGI (Common Gateway Interface): 用来作为 Web Server 同 Python, PHP 等的通信手段.而在静态网页的时代, 只 ...

  2. 给统计人讲Python(1)_科学计算库-Numpy

    本地代码是.ipynb格式的转换到博客上很麻烦,这里展示部分代码,了解更多可以查看我的git-hub:https://github.com/Yangami/Python-for-Statisticia ...

  3. (链接)IDEA 2018 激活 IDEA 2018.3激活教程 最新的(三种)—2018.11.26亲测

    破解不成功的请注意时效性,写于2019/2/8,以下第一种激活方法亲测可用, 不过有时候破解成功了可能过几天突然就打不开了,双击无反应的说,这时候再按顺序 操作一遍就是了: 1)把idea64.exe ...

  4. SIFT算法总结:用于图像搜索

    原始文章链接:http://bubblexc.com/y2011/163/ 原文链接:http://blog.csdn.net/cserchen/article/details/5606859 关于三 ...

  5. nodeJs配置相关以及JSON.parse

    nodeJs配置相关 实际上说应用相关更好吧,我不是很懂. 今天在工作中,被同事解决了一个问题,虽然多花了一些额外时间,但长痛不如短痛嘛 实际上的问题就是npm run target等命令可以,但是n ...

  6. C# 递归产生树

    //递归产生树 private void CreateTwo(TreeNode node, int id) { #region --根据指定ID查找数据到 dt string strSql = &qu ...

  7. Java中Scanner类的使用

    一个可以解析基本类型和字符串的简单文本扫描器. 例如,以下代码使用户能够从 System.in 中读取一个数: public class ApiScanner { public static void ...

  8. MongoDB 学习笔记(二):shell中执行增删查改

    一.查 1.查询集合中所有文档:db.集合名.find(). 2.查询集合中第一个文档:db.集合名.findOne(). 3.指定查询条件:第一个参数就是指定查询条件 查询全部文档:db.集合名.f ...

  9. mysql-创建用户报错ERROR 1396 (HY000): Operation CREATE USER failed for 'XXXX'@'XXXX'(转载)

    创建用户: create user ‘test’@’%’ identified by ‘test’; 显示ERROR 1396 (HY000): Operation CREATE USER faile ...

  10. MySQL-字符类型与约束条件

    创建表完整的语法: create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],字段名3 类型[(宽度) 约束条件]); 注意事项: 1. 在同一张表中 ...