APP第三方登录QQ和微博配置

文章目录
  1. 1. 需求
  2. 2. android打包签名
    1. 2.1. 安装java环境
    2. 2.2. 生成keystore
    3. 2.3. dsjyw.store参数
    4. 2.4. 打包
    5. 2.5. 签名
    6. 2.6. 查看签名
  3. 3. 腾讯开放平台
    1. 3.1. 创建安卓应用
    2. 3.2. 创建ios应用
  4. 4. 新浪开放平台
  5. 5. 书签

需求

使用hbuilder修改东北高师就业联盟网的app,完成了qq和微博第三方登录,真机调试正常。但是打包发布后,问题来了。使用qq登录时,会提示错误“该应用非官方正版应用,请去应用宝下载正版后进行qq登陆。(错误码:100044)”。使用微博登录时,会提示错误“21338:sso package or sign error”。

因为就业联盟网在开放平台上是一个web应用,但是我们的app打包后是一个android应用和一个ios应用。所以,要解决这个问题,我们要在开放平台上添加android应用和ios应用。

android打包签名

在配置开放平台之前,我们先把android app打包发布,具体流程如下:

安装java环境

1、jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、双击安装jdk,按照提示一步一步安装即可,假设安装目录为C:\Program Files\Java\jdk1.8.0_111C:\Program Files\Java\jre1.8.0_111

3、添加环境变量JAVA_HOMEC:\Program Files\Java\jdk1.8.0_111

4、在环境变量Path中添加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

5、添加环境变量CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

6、在DOS命令行窗口输入javac,输出帮助信息即为配置正确。

生成keystore

keytool -genkey -alias dsjyw.keystore -keyalg RSA -validity 1000 -keystore dsjyw.keystore

说明:keytool -genkey -alias 别名.keystore -keyalg RSA -validity 有效期限(天数) -keystore 别名.keystore

dsjyw.store参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
输入密钥库口令: voidking
再次输入新口令: voidking
您的名字与姓氏是什么?
[Unknown]: VoidKing
您的组织单位名称是什么?
[Unknown]: Nenu
您的组织名称是什么?
[Unknown]: Nenu
您所在的城市或区域名称是什么?
[Unknown]: ChangChun
您所在的省/市/自治区名称是什么?
[Unknown]: JiLin
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=VoidKing, OU=Nenu, O=Nenu, L=ChangChun, ST=JiLin, C=CN是否正确?
[否]: y

输入 <dsjyw.keystore> 的密钥口令
(如果和密钥库口令相同, 按回车):

打包

1、打开Hbuilder,发行,发行为原生安装包。

2、使用自有证书;Android包名是自动生成的,不需要修改,也可以修改为自己喜欢的包名;证书别名和私钥密码是生成keystore时配置的;证书文件选择生成的keystore文件。

3、打包,之后会自动上传源码,打包好后下载到app存放目录中。

签名

1、复制打包下载好的apk文件到dsjyw.keystore相同的目录,重命名apk文件为android-release-unsigned.apk。

2、打开cmd,执行签名命令
jarsigner -verbose -keystore dsjyw.keystore -signedjar dsjyw.apk android-release-unsigned.apk dsjyw.keystore

说明:jarsigner -verbose -keystore 别名.keystore(密钥库位置) -signedjar 签名后产生的文件.apk
要签名的文件.apk 别名.keystore(密钥库)

查看签名

keytool -v -list -keystore dsjyw.keystore

找到MD5: 70:1D:81:1E:D3:A6:8B:28:66:82:BA:D8:EB:79:DC:63

新浪创建移动应用时要求的是32位数字小写字母,把前面的这串数字中的冒号去掉,字母小写即可。

腾讯开放平台

创建安卓应用

1、登录腾讯开放平台

2、安卓应用,创建应用。

3、关联QQ互联,输入联盟网web应用的appid和appkey,确定。之所以关联QQ互联,是为了统一appid,否则,web登录和app登录获得的是不同的openid。

如果关联QQ互联后,创建应用失败,提示“对不起,您不是应用的创建者或协作者(1500401)”。

可能一:
不是协作者。请先使用联盟网web应用所在账号登录,在管理中心页面,滑动鼠标到右上角用户名,单击权限权限管理,添加协作者。

可能二:
账号冲突。之前的web应用在QQ互联上,此时,不要在浏览器中同时打开腾讯开放平台和QQ互联,也不要登录其他的QQ邮箱,有可能账号冲突。

可能三:
开发者资料未提交审核。

4、选择移动应用 安卓,创建应用,选择应用类型,确定。此时创建的安卓应用,它的appid和appkey就和联盟网web应用相同了。

5、按照提示,填写需要的字段即可。需要注意的是,上传安装包时,需要上传签名后的apk文件。

6、填写好信息,保存即可,不需要提交审核。如果需要提交审核的话,请先根据提示加固应用。

创建ios应用

1、在安卓应用中,可以看到我们创建的联盟网app,单击它。

2、鼠标滑到右上角平台信息,单击IOS应用,即可创建IOS应用。该IOS应用的appid和appkey就和联盟网web应用相同,也和安卓应用相同。

警告,创建ios应用后,此时安卓应用和ios应用实际上是同一个应用。删除任意一个,两个应用就都没有了。

3、按照提示填写各字段即可。其中比较难的是URL scheme、AppStore ID和Bundle ID,这些信息可以到Apple Developeritunes connect上查看到。

新浪开放平台

1、登录新浪开放平台

2、微连接,移动应用,立即接入。勾选Iphone和Android两个平台,创建。

3、填写应用基本信息。其中比较难的是Android签名,不必使用新浪提供的签名工具,参考本文中的“查看签名”小节,填入得到的32位字符串。

4、保存信息,提交审核。审核不通过会有详细提示,参考提示修改后再次提交审核。

5、单击左侧导航栏应用信息,高级信息。OAuth2.0 授权设置中点击编辑,授权回调页和取消授权回调页都填入https://api.weibo.com/oauth2/default.html

书签

HBuilder 打包流程

腾讯开放平台创建应用的坑,安卓和iOS端如何共用同一个Appid?