我试过了
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
我得到一个 keyhash 1knQ67Fx4PUOYXggSe+mnzqaTL8=
。
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) {
}
但这会产生UR02fNgzyMOjpWCxUnjGZ4ctF6Y=
. 我已经双重验证了这一点,并且我通过各自的方法得到了这两个值。
为什么它们不同?我应该在developers.facebook.com 注册哪一个?文档似乎不是很清楚。
编辑:
正如 Offbeatmammal 所说,我可以在 facebook 网站上注册多个密钥。所以没关系。但我还应该在应用程序清单文件中指定 keyhash。所以另外问:我应该在应用程序中使用哪一个?我当然可以尝试,但也欢迎回答。