Facebook SDK 密钥哈希 - 忘记了吗?

Posted

技术标签:

【中文标题】Facebook SDK 密钥哈希 - 忘记了吗?【英文标题】:Facebook SDK Key Hash - forgotton? 【发布时间】:2015-04-21 15:09:18 【问题描述】:

我已经在我的 android 应用程序中正确实现了 Facebook SDK,我相信开发密钥哈希等,我正在测试登录功能。我第一次使用该功能时,Facebook 页面向我展示了通常的“此应用程序想访问您的简历个人资料”和我的图片,点击接受后,我返回应用程序,成功。但是第二次,从现在开始点击登录按钮时显示以下错误。

“此应用未配置安卓密钥哈希。在“http://developer.facebook.com/apps/28748493729”配置您的应用密钥哈希

似乎设置在使用一次后以某种方式忘记了我的密钥哈希,但是当我访问提供的链接时,它显示开发密钥哈希仍然存在。我是否错过了密钥哈希如何工作的概念?

任何帮助表示赞赏,

谢谢。

【问题讨论】:

您是否在开发者应用详情网站中添加了哈希? 【参考方案1】:
public static String getKeyHash(Context context, String packageName) 
try 
    PackageInfo info = context.getPackageManager().getPackageInfo(
            packageName,
            PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) 
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String keyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
        return keyHash;
    
 catch (PackageManager.NameNotFoundException e) 
    return null;
 catch (NoSuchAlgorithmException e) 
    return null;

return null;

使用上述方法生成哈希键并将其添加到 facebook 开发者应用程序详细信息中

你最好使用新的 sdk,即 Facebook sdk4

【讨论】:

感谢您的及时回复。现在就试一试。 当我通过使用 openssl 从命令行生成哈希将 facebook 集成到我的应用程序时遇到了这个错误,我希望这对你也有用 这行得通,看来这比使用 openssl 命令行替代方法获得哈希键要好得多。非常感谢 VAISAKH。

以上是关于Facebook SDK 密钥哈希 - 忘记了吗?的主要内容,如果未能解决你的问题,请参考以下文章

关于 Android 版 Facebook SDK 的开发和发布密钥哈希的问题

Facebook SDK 登录问题

无效的密钥哈希。密钥哈希与任何存储的密钥哈希不匹配 facebook android

无效的密钥哈希 - android facebook

带有 Cordova 的 Facebook 的 Android 密钥哈希

如何在 Mac 上生成 Facebook 发布密钥哈希?