facebook sdk 3.5 android remote_app_id的简单帖子与存储的id不匹配

时间:2013-10-16 05:23:20

标签: android facebook facebook-graph-api android-facebook

您好我使用名为HelloFacebookSample的简单facebook示例但是当我尝试登录时它不会登录(我的照片或名称不会出现)或当我试图点击发布按钮时总是给我错误

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

任何人都可以帮我解决这个问题我是facebook整合的新手

下面是获取错误的屏幕截图,如下所示

enter image description here

1 个答案:

答案 0 :(得分: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

如果您不知道如何操作,请在您的应用设置上粘贴该哈希键,请点击以下链接

enter image description here

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

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

enter image description here

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

enter image description here

现在运行示例,你一定会发布你的答案

如果您仍然收到错误,您可以通过其他方式获取哈希键中的错误

只需在“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应用设置页面上复制此hashkey并保存并重新运行您的应用。

你肯定会发帖:)