我尝试将facebook sdk(版本:3.14)整合到我的应用中,但我很快遇到了keyhash问题
当我运行命令
时keytool -exportcert -alias androiddebugkey -keystore~ / .android / debug.keystore | openssl sha1 -binary | openssl base64
我得到了这个密钥哈希: 的 XHAAVbh9dOufRUPyIWm / 9ws5q10 =
但是当我尝试运行facebook示例发布内容到fb wall时(项目名称:HelloFaceBookSample) 我得到了很多错误,它让我非常困惑,因为在logcat中我带错误日志:
com.facebook.http.protocol.ApiException:(#404)密钥哈希 XHAAVbh9dOufRUPyIWm_9ws5q10 与任何存储的密钥哈希都不匹配。
facebook sdk出错密钥哈希?
答案 0 :(得分:3)
在代码中使用它来获取keyhash:
public void KEY(){
try {
PackageInfo info = getActivity().getPackageManager().getPackageInfo("com.YourPackageName", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
Toast.makeText(getActivity().getApplicationContext(),sign, Toast.LENGTH_LONG).show();
System.out.println(sign);
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}
确保在FB dev控制台上提供正确的密钥哈希。
答案 1 :(得分:3)
如果您使用的是eclipse,则可以直接使用此链接生成哈希密钥。
转到Eclipse - >窗口 - >偏好 - > Android - >建立。并复制SHA1值并将其粘贴到下面提供的链接中。您可以使用从站点生成的密钥哈希并将其粘贴到Facebook设置上。