嗨,我使用了一个名为 HelloFacebookSample 的简单 facebook 示例,但是当我尝试登录时,它不会登录(我的照片或名字没有出现),或者当我尝试点击发布按钮时,它总是给我类似的错误
Android Facebook key hash — “remote_app_id does not match stored id”
任何人都可以帮助我如何解决这个问题我是 facebook 集成的新手
下面是出现如下错误的屏幕截图
嗨,我使用了一个名为 HelloFacebookSample 的简单 facebook 示例,但是当我尝试登录时,它不会登录(我的照片或名字没有出现),或者当我尝试点击发布按钮时,它总是给我类似的错误
Android Facebook key hash — “remote_app_id does not match stored id”
任何人都可以帮助我如何解决这个问题我是 facebook 集成的新手
下面是出现如下错误的屏幕截图
这通常是因为您没有将 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 应用程序设置页面上复制此哈希键并保存并重新运行您的应用程序。
你肯定会发布:)