【问题标题】:Android Facebook SDK : "(# 404) Keyhash XXXXXX does not match any stored key hashes"Android Facebook SDK:“(#404)Keyhash XXXXXX与任何存储的密钥哈希不匹配”
【发布时间】:2014-03-07 07:34:34
【问题描述】:

我正在为一个应用尝试 Android Facebook 集成。我是新手。

我有 Facebook SDK,我正在尝试从那里运行一些示例。当我运行示例时,我收到此错误“ (# 404) Keyhash XXXXXX does not match any stored key hashes”。

XXXXXX 可能是我的 keyhash,我对它进行了一些基本的搜索。我阅读了this,并将 XXXXXX 值与我机器上的 Java Keytool.exe 进行了比较。与这些数字匹配。

我必须让这个工作——我觉得我必须在 Facebook 开发者网站的某个地方添加这个。有人可以告诉我这是否正确以及如何做。或者,如果您能指导我采用正确的方法,我的方法也可能是错误的。这会很有帮助。

谢谢!

【问题讨论】:

  • 您必须在您的应用程序的 Facebook 开发者控制台中添加此哈希键。

标签: android facebook facebook-graph-api android-keystore


【解决方案1】:

在这里花了几个小时并参考了几个答案。最后它对我有用。几个观察:

  1. Keytool 生成的哈希码与异常中显示的哈希码不同。使用后者。
  2. 对于 Facebook 示例应用程序,我们需要添加 SampleApp 的哈希值。如果我们输入哈希值并单击 SaveChanges,它的清除和未保存。因此,在单击 SaveChanges 之前,需要按回车键并确保其未清除。
  3. 需要在异常中显示的 hashkey 末尾附加 =。

【讨论】:

  • #1 可能是错误的。钥匙工具对我有用。我的问题是我赶时间,所以没有填写包名
  • 糟糕!在错误中的哈希之后添加 = 是关键。
  • 您可以通过添加如下所述的代码 sn-p 来获取异常中显示的哈希码:developers.facebook.com/docs/android/getting-started/…
【解决方案2】:

假设您知道如何创建哈希键,建议您按照以下步骤在应用程序的FaceBook 开发者控制台中添加哈希键,

1.创建应用后,点击左侧面板中的设置。

2.选择添加平台。

3.从弹出窗口中,选择 Android 作为您的平台。

4.在那里你会找到输入包名、类名和散列键的字段。

5.填写相应的字段。您也可以输入许多哈希键。

注意:如果你输入了错误的哈希键,那么它会再次显示同样的错误。

希望对你有帮助。

【讨论】:

    【解决方案3】:

    生成释放哈希键时,注意这一点

    Windows:
    在windows上生成hash key时需要使用openssl-0.9.8e_X64.zip,不能使用openssl-0.9.8k_X64.zip

    这些版本产生不同的哈希键,由于某种原因 9.8k 不能正常工作...... 9.8e 可以。

    使用下面的流程

    这就是我解决这个问题的方法 将您的 APK 下载到您的 PC 中的 java jdk\bin 文件夹中 在我的情况下C:\Program Files\Java\jdk1.7.0_121\bin 转到 java jdk\bin 文件夹并运行 cmd 然后 在你的cmd中复制以下命令

    keytool -list -printcert -jarfile yourapkname.apk

    将 SHA1 值复制到剪贴板 像这样CD:A1:EA:A3:5C:5C:68:FB:FA:0A:6B:E5:5A:72:64:DD:26:8D:44:84 并打开 Hex To Base 64 将您的 SHA1 值转换为 base64。

    对于 MAC

    第 1 步:

    使用以下命令生成 SHA1 密钥
    keytool -list -v -keystore
    输入密钥库密码。
    复制 SHA1 密钥。

    第 2 步:
    打开此链接 - Hex To Base 64
    将 SHA1 密钥粘贴到十六进制字符串中
    点击转换按钮
    获取输出值中的 Release Keyhash

    【讨论】:

      【解决方案4】:

      除了注意hash问题外,还需要确保设备上的Facebook账号是admin账号、develop账号或者有权限参与测试的账号。

      【讨论】:

      • 看来您已经用 2 种不同的语言编写了相同的答案 - SO 是一个仅限英文的网站。你能删除任何其他语言吗?
      猜你喜欢
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多