我正在尝试使用facebook api登录我的Android应用程序。按照教程后,我可以在点击facebook按钮登录后获得确认屏幕。但是,当我第二次运行我的应用程序时,我得到了#34; Facebook密钥哈希与任何存储的密钥哈希都不匹配"错误。
我在stackoverflow上关注其他帖子,删除了我的应用程序并再次创建等等但是在第二次运行时我再次遇到同样的错误。
Facebook key hash does not match any stored key hashes
你知道什么是错的,为什么我没有第一次运行,但我在第二次运行时遇到这个错误?
答案 0 :(得分:0)
试试这个:
public void Get_hash_key() {
PackageInfo info;
try {
info = getPackageManager().getPackageInfo("your_package_name", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
//String something = new String(Base64.encodeBytes(md.digest()));
Log.e("hash key", something);
}
} catch (PackageManager.NameNotFoundException e1) {
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}
}
添加您的包名称并在您的Mainactivity的onCreate
()中调用此函数
它将在logcat上打印哈希键...
将密钥复制并粘贴到开发人员面板上,删除其他密钥
答案 1 :(得分:0)
为您的Android应用创建一个有效的密钥库:
(Windows)
keytool -genkey -v -keystore fisherbook.keystore -alias fisherbook -keyalg RSA -keysize 2048 -validity 10000
生成facebook哈希密钥:
(Windows)中
keytool -exportcert -alias <KEYSTORE_ALIAS> -keystore <COMPLETE_KEYSTORE_PATH> | openssl sha1 -binary | openssl base64
或者看看facebook错误:“无效的密钥哈希。密钥与任何商店哈希都不匹配......” 有你的Facebook哈希密钥!
然后将你的哈希值放在facebook开发者网站的app / settings(android)上。