1

嗨,我使用了一个名为 HelloFacebookSample 的简单 facebook 示例,但是当我尝试登录时,它不会登录(我的照片或名字没有出现),或者当我尝试点击发布按钮时,它总是给我类似的错误

       Android Facebook key hash — “remote_app_id does not match stored id”

任何人都可以帮助我如何解决这个问题我是 facebook 集成的新手

下面是出现如下错误的屏幕截图

在此处输入图像描述

4

1 回答 1

1

这通常是因为您没有将 HashKey 值放入 facebook

如果您使用的是 mac pc,不如试试这个

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

或者如果您使用的是 windows pc,那么请尝试使用它

   keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

如果您的电脑上没有 openssl,请先使用以下链接下载

http://code.google.com/p/openssl-for-windows/downloads/detail?name=openssl-0.9.8k_X64.zip

如果您不知道如何执行此操作,请将该哈希键粘贴到您的应用程序设置中,请按照以下链接操作

在此处输入图像描述

https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/

现在复制您的 Facebook 应用程序的 app_id

在此处输入图像描述

并粘贴到 string.xml 文件中,默认情况下在“HelloFacebookSample”示例中有一个应用程序 ID 将其替换为您的应用程序 ID

在此处输入图像描述

现在运行示例,您肯定会发布您的答案

如果您仍然收到错误,则您的哈希键可能仍然有错误,您也可以通过另一种方式获得

只需在“HelloFacebookSampleActivity.java”文件的 onCreate 方法中复制并粘贴以下代码

         // Add code to print out the key hash
try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.facebook.samples.hellofacebook", 
            PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
} catch (NameNotFoundException e) {

} catch (NoSuchAlgorithmException e) {

}

现在运行您的示例,您将在 logcat 中得到答案

例如

    12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

只需在您的 Facebook 应用程序设置页面上复制此哈希键并保存并重新运行您的应用程序。

你肯定会发布:)

于 2013-10-16T05:45:36.540 回答