我在我的应用程序中使用 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 上完成设置。脚步 :
转到 facebook 开发者页面:https://developers.facebook.com/ 打开应用程序选项卡,然后单击设置 在 HashKey 的字段上粘贴生成哈希键 = 如果您还没有,请获取您的密钥哈希部分代码和比单点登录将是“是”:单点登录:启用此设置。
我想分享我的决心。也许有人需要这个解决方案。祝你好运 !
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
对于 Windows:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
您无需生成散列密钥。当您尝试从您的应用程序访问 facebook 时,您将收到一条错误消息,指出未注册或配置以下“[Hash Key]”。只需复制该密钥并转到 developer.facebook.com,您已在其中注册了您的应用程序以进行 Facebook 验证并包含在密钥哈希下。
请记住:对于每个设备,哈希键可能不同。你需要新鲜地包括它。
默认情况下,此键应执行以下操作:2jmj7l5rSw0yVb/vlWAYkK/YBwk=
此外,在一切之前,您需要向 facebook 提供您的应用程序详细信息,以及您在哪里使用 facebook 功能的屏幕截图以及您使用的原因。他们需要验证这一点。
要生成发布密钥的哈希,请在 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
如果您还没有发布您的应用程序并且只想使用调试版本哈希,您可以使用以下命令从您的调试密钥库中获取它:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
有一种简单的方法可以获取您的 Hash Key。
只需在 onCreate 方法的主 .kt 文件中放入以下几行:
FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")
然后将结果复制到 facebook 开发者网站。有时结果在生成的字符串末尾没有等号 (=)。如果是,请手动添加。
# Get all Hash Expo
expo fetch:android:hashes
不定期副业成功案例分享