当我尝试在S3上运行我的应用程序时,我收到以下错误
Invalid android_key parameter. The key VgmNos1v_wYCwwxenlSneyDLza8
does not match any allowed key. Configure your app key hashes at http://developers.facebook.com/apps/299************
Run Code Online (Sandbox Code Playgroud)
我在我的第一台笔记本电脑上生成了一个密钥哈希,并在Facebook开发者网站上添加了..一切都很顺利,当我跑,它在仿真器上要求SSO,因此我能够发布.
几天后,我开始在不同的笔记本电脑上工作,并在S3上运行并得到此错误.谷歌搜索后,我发现我们需要将其添加为密钥哈希.我添加了关键的VgmNos1v_wYCwwxenlSneyDLza8,这是在错误中并尝试但是工作.所以我在第二台笔记本电脑上生成了一个密钥哈希,并收到了一个密钥哈希vyCoFm3xLkoFa8lp7l + LIAGhIe4 =这与错误中的不同.所以我添加了两个,但仍然存在错误.
请帮助我,因为我非常严重地停留在这一点:(
请注意:我仍处于调试模式.
我想知道与机器相关的密钥哈希?每台机器都有唯一的密钥哈希?我使用下面的命令在第二台笔记本电脑上生成密钥哈希
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\605577709\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
Run Code Online (Sandbox Code Playgroud)
是的keyhash取决于androiddebugkey&它因设备而异.所以你可以做任何一件事 -
debug.keystore从用户目录复制文件 - > .android从旧m/c到新m/c.
使用此代码获取新的密钥哈希 -
try{ logger.debug("Checking signs");
PackageInfo info = getPackageManager().getPackageInfo(this.getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
logger.debug(Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
logger.debug(e.getMessage());
}`
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3533 次 |
| 最近记录: |