📜  facebook 发布密钥哈希 (1)

📅  最后修改于: 2023-12-03 15:15:02.079000             🧑  作者: Mango

关于Facebook发布密钥哈希

在Android应用程序开发中,当你需要将应用程序与Facebook集成,你需要在开发的过程中将你的应用程序注册到Facebook开发平台,以在应用程序中使用Facebook SDK。在注册过程中需要提供一个密钥哈希。

密钥哈希可以用来验证应用程序是否来自正确的发布者。在应用程序中与Facebook SDK连接时,只有与正确密钥哈希相关的应用程序才能够访问 Facebook API。在应用程序运作时使用错误密钥哈希,可能会产生一些具有挑战性的问题。

在下面的段落中,我们将介绍如何生成要在Facebook开发平台中使用的密钥哈希。

手动获取密钥哈希

要使用Facebook SDK,需要在应用程序的根目录下创建一个名为 debug.keystore 的文件。可以使用下面的命令创建:

keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US"

这将在应用程序的根目录下创建一个 debug.keystore 文件,其中包含用于调试应用程序的密钥库。

接下来,要生成密钥哈希,需要在终端中运行以下命令:

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

这将输出一个长度为28的密钥哈希。请注意,该密钥哈希只适用于当前电脑上用于调试该应用程序的密钥库。

自动获取密钥哈希

如果你使用的是Android Studio,则可以使用facebook-android-sdk库自动获取密钥哈希。只需使用以下代码片段将密钥哈希添加到应用程序清单中:

<meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/facebook_app_id" />
<meta-data
    android:name="com.facebook.sdk.ApplicationName"
    android:value="@string/app_name" />
<meta-data
    android:name="com.facebook.sdk.ClientToken"
    android:value="@string/facebook_client_token" />
<meta-data
    android:name="com.facebook.sdk.CallbackOffset"
    android:value="0" />
<meta-data
    android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
    android:value="true"/>

其中 facebook_app_idfacebook_client_token 字符串分别是 Facebook 应用程序 ID 和客户端令牌。

Facebook SDK 将自动检测和注册打包应用程序的电脑,并将相应的密钥哈希添加到你的项目中。

结论

密钥哈希是与Facebook API连接所必需的。在本文中,我们介绍了如何手动获取密钥哈希,以及如何使用 Facebook SDK 自动获取密钥哈希。无论哪种方法,都需要确保密钥哈希与应用程序清单中的 Facebook 应用程序 ID 和客户端令牌匹配。这样应用程序就可以与Facebook集成成功。