Android w/Facebook SDK:密钥哈希错误突然出现
在Android应用程序中使用FacebookSDK时,使用无效哈希键错误似乎相当常见。我在这里找到的解决方案非常有效。我在我的应用程序中以编程方式创建了散列键,并将该键复制粘贴到我应用程序的Facebook开发者页面的界面中 尽管找到了这个和其他的解决方案,我还是找不到一个很好的解释为什么我会突然出现这个错误Android w/Facebook SDK:密钥哈希错误突然出现,android,facebook,facebook-graph-api,hash,facebook-android-sdk,Android,Facebook,Facebook Graph Api,Hash,Facebook Android Sdk,在Android应用程序中使用FacebookSDK时,使用无效哈希键错误似乎相当常见。我在这里找到的解决方案非常有效。我在我的应用程序中以编程方式创建了散列键,并将该键复制粘贴到我应用程序的Facebook开发者页面的界面中 尽管找到了这个和其他的解决方案,我还是找不到一个很好的解释为什么我会突然出现这个错误 当我使用下面的keystore命令时,我仍然得到了已经在我的Facebook开发者页面上注册的相同的散列键,到目前为止,它工作得很好(现在我有2个注册的散列键) 我没有改变开发环境,
- 当我使用下面的keystore命令时,我仍然得到了已经在我的Facebook开发者页面上注册的相同的散列键,到目前为止,它工作得很好(现在我有2个注册的散列键)
- 我没有改变开发环境,即开发我的应用程序的PC
- 就在我出现这个错误的几个小时前,我把这个应用程序交给了一个新注册的测试人员,他可以很好地登录到我的应用程序
- 我目前只是在开发和测试,所以这个应用还没有公开
- 在模拟器上,进进出出的唱歌仍然可以正常工作。只有在我自己的手机上,我用它在物理设备上测试应用程序,在我注销并想再次登录后,突然出现了这个错误
为什么散列键(我使用
keytool
命令生成的散列键和我在应用程序中生成的散列键)不同?这似乎是Facebook端的一个bug。过去24小时我一直在处理相同的问题。我尝试了一切,从创建一个新的Facebook应用程序,使用新的Facebook Id和应用程序机密(工作了一分钟,然后我又开始收到相同的错误消息),到删除设备上的应用程序,甚至更新Facebook SDK
解决方案
我最终通过复制错误消息中的keyhash并在开发人员控制台上用旧的keyhash替换它来克服它
您可以直接从Android monitor中的debug
选项卡复制它
如果您不确定如何获取此信息,只需通过回调方法记录即可:
...
@Override
public void onError(FacebookException error) {
Log.d(TAG, error.getMessage());
// ...
}
Ojoungwa,谢谢!正如我提到的,解决这个问题相当简单。只是我能找到任何关于为什么的可靠信息。
...
@Override
public void onError(FacebookException error) {
Log.d(TAG, error.getMessage());
// ...
}