我正在尝试将FB集成到Android应用程序中。为此,我在Windows 7中使用cmd工具获取密钥哈希。
命令:
C:\adt-bundle-windows-x86-20130219\sdk\platform-tools>keytool -exportcert -alias
andrpoiddebugkey -keystore "C:\Users\naresh.repalle\.android\debug.keystore" |
"C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" base64
输入密钥库密码:android
BASE_64_HASH_1
我将密钥哈希(从cmd
)设置到fb developer
控制台中的应用程序,在尝试在设备中运行此设置后,我收到错误,因为 remote_app_id不匹配存储的ID。
使用开发者控制台重新检查密钥哈希。我在我的应用程序中做了一些编码。使用这个我得到密钥哈希。我试图匹配这两个关键的哈希,但这些是不同的。因此,我将这两个设置为关键哈希,但这次我得到错误为“未指定节点”。为什么这两个关键的哈希是不同的?为什么会出现这些错误。任何人都可以帮助我。
//添加代码以打印出密钥哈希
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.android.example",
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) {
}
这里我得到了密钥哈希为“BASE_64_ENCODED_HASH_2”。我是在同一台机器上做的。为什么这两个关键的哈希是不同的?
答案 0 :(得分:0)
似乎只有在安装Facebook应用程序之后才会出现,在我这样做之前,我正在开发正常并执行而不在FB应用程序站点设置任何哈希值。但是在我安装了FB应用程序之后,我也进入了这个问题。如上所述,FB推荐的cmd字符串和使用上面代码的代码内部的哈希值不同。
但我添加了代码中生成的哈希值,似乎已将其清除。