82

我在我的应用程序中使用 facebook 帐户登录时遇到问题。我读到 Facebook Doc。我作为 Facebook Doc 完成了所有步骤。

首先在应用程序中使用 facebook 帐户登录 -成功!而不是在应用程序中注销。我想用我的 facebook 帐户再次登录。但不工作!我拿了这个例外!请帮我 !

例外:此应用未配置 Android 密钥哈希。在 http:developers.facebook.com/apps/“APP ID”配置您的应用密钥哈希

最后; 我曾经使用过 HashKey Genarate 的部分代码

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
            Log.e("MY KEY HASH:", sign);
          //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
        }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

我解决了我的问题。我应该在 Facebook 上完成设置。脚步 :

  1. 转到 Facebook 开发者页面: https ://developers.facebook.com/
  2. 打开应用程序选项卡,然后单击设置

  3. 将生成的 hashkey 粘贴到 HashKey 的字段 = 如果您还没有,请获取代码的密钥哈希部分

  4. 并且单点登录将是“是”:单点登录:启用此设置。

我想分享我的决心。也许有人需要这个解决方案。祝你好运 !

4

5 回答 5

16

您无需生成散列密钥。当您尝试从您的应用程序访问 facebook 时,您将收到一条错误消息,指出未注册或配置以下“[Hash Key]”。只需复制该密钥并转到developer.facebook.com,您已在其中注册了您的应用程序以进行 facebook 验证并包含在密钥哈希下。

请记住:对于每个设备,哈希键可能不同。你需要新鲜地包括它。

默认情况下,此键应执行以下操作:2jmj7l5rSw0yVb/vlWAYkK/YBwk=

此外,在一切之前,您需要向 facebook 提供您的应用程序详细信息,以及您在哪里使用 facebook 功能的屏幕截图以及您使用的原因。他们需要验证这一点。

于 2014-12-14T11:50:31.540 回答
10

要生成发布密钥的哈希,请在 Mac 或 Windows 上运行以下命令,替换您的发布密钥别名和密钥库的路径。在 OS X 上,运行:

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

在 Windows 上,使用:

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


参考:https ://developers.facebook.com/docs/android/getting-started/#create_hash

于 2016-08-27T15:09:37.460 回答
3

如果您还没有发布您的应用程序并且只想使用调试版本哈希,您可以使用以下命令从您的调试密钥库中获取它:

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

有关此相关 SO 帖子的更多信息

于 2018-05-09T14:59:30.973 回答
1

有一种简单的方法可以获取您的 Hash Key。

只需在 onCreate 方法的主 .kt 文件中放入以下几行:

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

然后将结果复制到 facebook 开发者网站。有时结果在生成的字符串末尾没有等号 (=)。如果是,请手动添加。

于 2019-07-13T17:44:43.123 回答
1
# Get all Hash Expo  
expo fetch:android:hashes
于 2019-11-19T02:36:30.660 回答