Facebook实现第三方登陆invalidKeyHash的解决方法
2017-09-16 17:04
375 查看
在接入Facebook第三方登陆时,有时候按照Facebook提供的方法(包括通过代码得到的)得到的keyHash并不匹配,所以登陆时会造成Invalid key hash的错误。
当时也试了好多方法,最后在stackoverflow上面找到了解决方法。获取KeyHash的步骤如下。
1. 点击下载openssl。(需要翻墙,本来打算自己上传一份,想想是接入Facebook..)
2. 在C盘创建openssl文件夹。
3. 解压第一步下载的zip压缩文件到openssl文件夹。
4. 找到debug.keystore文件(如果你的用户名没改的话,一般是在C:\用户\Administrator.android中),把它拷贝到你的电脑中的JDK的bin目录中(因人而异了)。
5. 在JDK的bin目录中按住shift+鼠标右键,在此处打开命令窗口。输入以下命令
6. 回车后需要输入密码,默认密码为android。
7. 现在在你的openssl的bin目录中应该已经有一个debug.txt的文件了。
8. 关掉当前cmd窗口,切换到openssl的bin目录中,按住shift+鼠标右键,在此处打开命令窗口。输入
9. 回车后,你的openssl文件夹中应该就有一个debug_sha.txt文件了。
10. 继续在当前cmd窗口输入
11. 回车后你的在openssl的bin目录中会有一个debug_base64.txt 的文件了,打开这个文件就得到正确的KeyHash了
PS,最后得到的正确的KeyHash好像就是crash的时候所显示的那个keyhash值,当时修改以后没有这个错误了也就没有核对了,有兴趣的朋友可以直接输入crash时候的那个keyhash。
当时也试了好多方法,最后在stackoverflow上面找到了解决方法。获取KeyHash的步骤如下。
1. 点击下载openssl。(需要翻墙,本来打算自己上传一份,想想是接入Facebook..)
2. 在C盘创建openssl文件夹。
3. 解压第一步下载的zip压缩文件到openssl文件夹。
4. 找到debug.keystore文件(如果你的用户名没改的话,一般是在C:\用户\Administrator.android中),把它拷贝到你的电脑中的JDK的bin目录中(因人而异了)。
5. 在JDK的bin目录中按住shift+鼠标右键,在此处打开命令窗口。输入以下命令
keytool -exportcert -alias androiddebugkey -keystore debug.keystore > c:\openssl\bin\debug.txt
6. 回车后需要输入密码,默认密码为android。
7. 现在在你的openssl的bin目录中应该已经有一个debug.txt的文件了。
8. 关掉当前cmd窗口,切换到openssl的bin目录中,按住shift+鼠标右键,在此处打开命令窗口。输入
openssl sha1 -binary debug.txt > debug_sha.txt
9. 回车后,你的openssl文件夹中应该就有一个debug_sha.txt文件了。
10. 继续在当前cmd窗口输入
openssl base64 -in debug_sha.txt > debug_base64.txt
11. 回车后你的在openssl的bin目录中会有一个debug_base64.txt 的文件了,打开这个文件就得到正确的KeyHash了
PS,最后得到的正确的KeyHash好像就是crash的时候所显示的那个keyhash值,当时修改以后没有这个错误了也就没有核对了,有兴趣的朋友可以直接输入crash时候的那个keyhash。
相关文章推荐
- Facebook实现第三方登陆invalidKeyHash的解决方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- 实现对第三方论坛的统一登陆几种方法
- 利用FaceBook实现第三方登陆(自定义登陆按钮,非官方按钮)并获取用户数据
- Bmob实现登陆注册,解决官方signUp与Success方法更新后出错问题
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- 微博第三方登陆请求授权出现错误码:21322(重定向地址不匹配)的解决方法
- Facebook使用应用登陆成功后回调返回认证失败解决方法
- 使用ShareSDK做第三方登陆功能,http无法连接和qq空间分享没有出现的解决方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- 第一次用.net2.0 LOGIN登陆控件的困惑和解决方法。
- 使用webservice解决多系统登陆问题(方法一)
- ASP 二进制与字符串互转, 另类完美解决方法, adodb.stream 实现 By shawl.qiu
- 关于单点登陆的一些解决方法
- 第一次用.net2.0 LOGIN登陆控件的困惑和解决方法
- 用户"sa "登陆失败 SQLServer 错误18456----解决方法
- 第一次用.net2.0 LOGIN登陆控件的困惑和解决方法
- 远程登陆速达E3PRO服务器出现share violation错误的解决方法.
- 用servlet实现登录注册功能时遇到的问题和解决方法