Android集成Facebook登录时遇到的问题invalid key hash.the key hash

一、Facebook:登录功能已停用,我们已停用通过嵌入式浏览器登录Facebook的功能

错误提示:

为保护账户安全,我们已停用通过嵌入式浏览器登录Facebook的功能。若要继续,请更新登录使用的应用并重试。

部分手机还会提示:

登录出错:将你登入到此应用程序时出错。请稍后再试。
Android集成Facebook登录时遇到的问题invalid key hash.the key hash
 

当前问题解决方式:

Facebook Sdk 版本 遇到当前问题时,检查当前项目集成的Facebook sdk版本是否为8.0及以下,只需要将sdk的版本调整为最新版本即可。

二、GooglePlay 下载的应用登录Facebook报错:invalid key hash.the key hash does not match any stored key hashes.Configure your app key hashes at

Facebook集成文档 在解决上一个问题时,使用最新版sdk,开发环境下测试正常,在将应用发布到google play后,下载测试,在进行Facebook登录时遇到了这个奇怪的错误。

错误提示:

Invalid key hash. The key hash xxxxxxxx does not match any stored key hashes. Configure your app key hashes at https://developers.facebook.com/apps/xxxxx
Android集成Facebook登录时遇到的问题invalid key hash.the key hash
  反复检查后确定,已经按照Facebook的SDK接入流程进行了接入和测试,并且也添加了发布证书的key hash,却又出来一个新的未知的key hash呢?
生成发布密钥散列 Android 应用必须先使用发布密钥进行电子签名,然后才能上传到商店中。如要生成发布密钥散列,请在 Mac 或 Windows 内运行以下命令,并替换您的发布密钥别名和密钥库路径 YOUR_RELEASE_KEY_ALIAS 替换为当前别名 YOUR_RELEASE_KEY_PATH 替换为当前key的路径
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
 

当前问题解决方式:

出现当前错误的原因是,本地打出来的release包(不管是apk还是aab的)在上传到google play后台时应用都会被重新签名,这个签名的hash值在facebook后台并没有进行注册。因此在进行Facebook登录时会提示用户hash不正确
Google后台管理选择当前应用->设置(setup)->应用完整性(app integrity)
Android集成Facebook登录时遇到的问题invalid key hash.the key hash
  1、下载当前应用在google play的证书 2、获取证书的hash值 执行以下命令,获取hash值
openssl dgst -sha1 -binary <GooglePlay的发布证书地址>.der | openssl base64
3、将获取到的hash值注册到facebook
Android集成Facebook登录时遇到的问题invalid key hash.the key hash