【问题标题】:Invalid Key hash facebook android sdk无效的密钥哈希 facebook android sdk
【发布时间】:2014-10-07 07:58:24
【问题描述】:

我正在尝试使用 Facebook Android SDK 开发一个带有 Facebook 登录按钮的简单应用程序。但是我在使用密钥哈希时遇到了麻烦。我已经创建了调试密钥和发布密钥:(在 mac 中)

调试键:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

我也试过这段代码

public static void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(
                    "com.example.me", PackageManager.GET_SIGNATURES); //Your            package name here
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
                }
        } catch (NameNotFoundException e) {
        } catch (NoSuchAlgorithmException e) {
        }
    }

然后我在 Facebook 开发人员页面中复制了这个密钥哈希值。当我使用 eclipse 运行我的应用程序时,然后工作。但是当我导出 apk 并将其复制到设备中时,它不起作用。 我还有另一个问题。如果我的设备安装了 Facebook 应用程序,那么也无法正常工作。 我该如何解决我的问题?

【问题讨论】:

  • 尝试在你的onCreate中执行showHasKey的代码(不是函数本身),你会得到另一个hash
  • @A.S.我试过了,但结果一样..... :(
  • 能否分享您的代码(oncreate)

标签: android eclipse adt android-facebook


【解决方案1】:

当您获得 Invalid key hash 时,它还会显示正确的 key hash 并显示“The keyhash XXXXX did not match with any stored keyhashes”。所以复制显示的 keyhash 并在末尾附加“=”作为 XXXXX= 并将其添加到 key hash 部分。希望它有效....

这可能也有效

public static void showHashKey(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                "com.example.me", PackageManager.GET_SIGNATURES); //Your package name here
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
    } catch (NoSuchAlgorithmException e) {
    }
}

【讨论】:

  • 很好的答案。节省了很多时间
猜你喜欢
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多