您好我使用名为HelloFacebookSample的简单facebook示例但是当我尝试登录时它不会登录(我的照片或名称不会出现)或当我试图点击发布按钮时总是给我错误
Android Facebook key hash — “remote_app_id does not match stored id”
任何人都可以帮我解决这个问题我是facebook整合的新手
下面是获取错误的屏幕截图,如下所示
答案 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
如果您不知道如何操作,请在您的应用设置上粘贴该哈希键,请点击以下链接
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应用设置页面上复制此hashkey并保存并重新运行您的应用。
你肯定会发帖:)