此应用未配置任何Android哈希。-使用Facebook SDK登录


81

我在应用程序中有关于使用Facebook帐户登录的问题。我读了Facebook Doc。我作为Facebook Doc迈出了第一步。

首先在应用程序中使用Facebook帐户登录-成功!然后退出应用程序。我想用我的Facebook帐户再次登录。但不能正常工作!我拿了这款Excepiton!请帮我 !

例外:此应用未配置任何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. 将generate hashkey粘贴到HashKey的字段上=如果还没有,请获取代码的哈希值

  4. 然后,单点登录将为“是”:单点登录:启用此设置。

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


1
谢谢-您为我提供了帮助,而我也遇到了相同的问题+1
Simon

在您单击设置按钮并添加新平台之后,Facebook现在提供了很好的快速keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
入门

您如何解决此问题?
andrei

2
您应该将解决方案发布为答案,并将其标记为答案。这将停止将这个问题显示为未回答。
苏菲安2015年

Answers:


15

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

切记:对于每个设备,哈希键可能会有所不同。您需要重新添加它。

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

另外,在进行所有操作之前,您需要向Facebook提供您的应用程序详细信息,以及您在何处使用Facebook功能的屏幕截图以及使用原因。他们需要验证。


感谢Nielarshi的回答。但是我解决了另一种方式。
塔里克Yurtlu

2
@TarıkYurtlu是什么?我已经注册了哈希键,但是没有用。如果我卸载了Facebook应用程序,它将可以正常工作。我应该注册要发布的应用程序还是可以进行开发?
Amt87,2015年

4
旧线程,但是...每个“签名的apk版本”和每个设备的密钥都不同吗?当然,如果每个设备都使用它,那么没人会使用它。对其他人的提示:您上传的签名版本和刚开发时使用的版本之间的哈希键是不同的。尽管您可以在Facebook中添加多个哈希键,但这应该不是问题。当您使用另一个签名密钥时,哈希将更改。
renevdkooi 2015年

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


2

如果您尚未发布应用,而只想使用调试版本哈希,则可以使用以下命令从调试密钥库中获取它:

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

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


1

有一个简单的方法来获取您的哈希密钥。

只需将您的主要.kt文件放在onCreate方法中的以下几行即可:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.