【问题标题】:invalid key hash - android facebook无效的密钥哈希 - android facebook
【发布时间】:2016-07-23 11:17:50
【问题描述】:

我创建了一个使用 facebook 登录的应用程序。我已将密钥哈希添加到 facebook 开发人员页面,它在所有设备上都运行良好。 现在我已经将应用程序上传到谷歌播放,当我尝试登录时,它说密钥哈希与任何存储的密钥哈希都不匹配。 我复制了错误消息中的密钥哈希并粘贴了它。仍然 - 不起作用。 我尝试使用发布密钥存储在 cmd 中生成密钥哈希 - 不走运。

有谁知道问题出在哪里以及如何解决?

提前致谢!

【问题讨论】:

    标签: android facebook hash google-play release


    【解决方案1】:

    尝试在使用发布证书签名的应用中添加以下代码 sn-p,将哈希输出与您提交到 Facebook 门户的哈希输出进行比较:

    PackageInfo info;
    try {
        info = getPackageManager().getPackageInfo("com.package.name", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md;
            md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String hash= new String(Base64.encode(md.digest(), 0));
            Log.e("hash", hash);
        }
    } catch (NameNotFoundException e1) {
        Log.e("name not found", e1.toString());
    } catch (NoSuchAlgorithmException e) {
        Log.e("no such an algorithm", e.toString());
    } catch (Exception e) {
        Log.e("exception", e.toString());
    }
    

    【讨论】:

    • 但这给了我一个用于调试的密钥哈希。它已经在 Facebook 门户中。它与错误消息中的键不同。
    • 使用发布证书发布你的应用并运行sn-p,它将显示发布证书的哈希
    • 如果我尝试通过 android studio 运行应用程序,它会使用调试密钥库(它会从 google play 卸载我的应用程序并安装一个新应用程序)。如果我从 google play 运行应用程序,我会在哪里看到日志消息?
    • 不,你不会。您需要将代码 sn-p 添加到您的项目中,使用发布证书发布一个新的 apk,将 APK 复制到您的设备并安装它。然后将您的手机连接到您的计算机,运行应用程序并检查日志输出
    • 有效!问题是当我将密钥哈希复制到 facebook 门户时,我写了字母 I (i) 而不是 l (L)
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    相关资源
    最近更新 更多