android - facebook很抱歉无法登录请检查你的网络连接
Facebook密钥哈希与任何存储的密钥哈希都不匹配 (10)
- 检查您的密钥哈希值。
- 从手机上卸载Facebook应用程序。
- 然后再次尝试使用SDK。
这解决了我的问题。
我真的遇到了Facebook哈希密钥问题。 我在Eclipse中生成它..证明:
然后我去了https://developers.facebook.com/并注册了一个新的应用程序。
最后我将我的hashkey设置为Facebook开发人员的设置:
但不管我做什么我一直得到相同的错误日志:“密钥哈希B5dWUEYfZJL / ........... jyA =与任何存储的密钥哈希值不匹配”
有人知道我做错了什么或如何解决这个问题? 如果我在我自己的应用程序中使用HelloFacebookSample中的id和名称,一切正常。 所以它与我最有可能设置的密钥哈希,id或名称有关。
谢谢,Yenthe
“为您的应用程序启用了单点登录”,这就是它只能运行一次的原因。 请转到developer.facebook并检查settings.it为我工作
使用Debug密钥存储包括.android文件夹中存在的android的debug.keystore产生了一个奇怪的问题; 在Android应用程序上使用Facebook登录按钮登录将首次完美地发生。 但是,当我登出并尝试登录时,它会抛出错误说:此应用程序没有配置Android密钥哈希。 请转到http:// ....
使用keytool命令创建密钥库(keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000)并将此密钥库放在我的项目最顶层的父文件夹中并创建一个在项目build.gradle文件中的以下条目解决了问题:
signingConfigs {
release {
storeFile file("my-release-key.keystore")
storePassword "passpass"
keyAlias "alias_name"
keyPassword "passpass"
} }
请注意,您始终在Android活动的onCreate()内使用以下方法来获取密钥哈希值(在您的应用程序的developer.facebook.com网站中注册),而不是使用命令行生成哈希值作为命令行有些人可能会把错误的密钥哈希:
public void showHashKey(Context context) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("KeyHash:", sign);
// Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
Log.d("KeyHash:", "****------------***");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
如果您的登录工作没有安装Facebook应用程序而且因为错误“哈希键不匹配”安装了Facebook应用程序时无法正常工作,请执行以下步骤
1)启动您的应用程序并尝试使用Facebook登录。 将打开一个对话框,告诉您:“在Facebook开发人员控制台中找不到密钥,并显示散列密钥。
2)记下那个哈希键。
3)将它放入你首先生成api密钥的facebook开发者控制台中,然后用new删除哈希密钥并保存。 现在你完成了。 下载您的应用程序的任何人都可以使用之前使用的密钥库发布,登录到Facebook。
我在开发过程中遇到了同样的问题,并且需要在Facebook上测试共享的哈希键,并且在解决这个问题时我遇到了几个问题
1- facebook提供的使用openSSL命令获取哈希密钥的命令没有给我正确的哈希,我通过使用代码从包信息中提取签名。 通过第二种方式获取哈希是正确的。
2-由于某种原因,在文档中他们告诉你去开发人员设置并在那里添加'Sample App'的哈希键,我认为开发人员的每个哈希键应该在那里,这是我的错误,每个应用程序都有它的自己添加哈希键字段,转到你的app / settings / android。
那就是它..而对于记录我在Windows 7 x64位上使用openssl-0.9.8k_X64它只是生成一个错误的哈希我不知道为什么
我用这段代码来获取哈希:
private void printKeyHash() {
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo("YOUR PACKAGE NAME", 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) {
Log.e("KeyHash:", e.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("KeyHash:", e.toString());
}
}
但要小心,这可能也不会在日志中打印正确的keyhash,至少在我的设备和机器上,当我调试它时,在手表中它在打印日志之前显示正确的哈希,但在日志中它显示另一个哈希和第一个是正确的。
无论如何你也可以使用命令或eclipse查看你的密钥的SHA十六进制序列,并将其转换为base 64 online,有些网站可以提供帮助http://tomeko.net/online_tools/hex_to_base64.php?lang=en
祝你好运
我有两个月的问题。 我的关键哈希值已高达9。今天我终于找到了简单的解决方案:
步骤1:
安装从手机上的Facebook开发者页面下载的facebook sdk。 不要安装正常的Facebook应用程序。 确保您可以登录Facebook。 然后退出。
第2步:
使用最终版本密钥将您的应用程序导出为apk,就像将其上传到Play商店一样。
第3步:
通过usb cable或usb stick将Apk文件放在手机上。
步骤4:
使用文件管理器安装您的应用:例如https://play.google.com/store/apps/details?id=com.rhmsoft.fm
第5步:
启动您的应用程序并尝试使用Facebook登录。 将打开一个对话框并告诉您:“在Facebook开发人员控制台中找不到该密钥
第6步:
记下钥匙。
第7步:
将它放入你的Facebook开发者控制台并保存。 现在你完成了。 下载您的应用程序的任何人都可以使用之前使用的密钥库发布,登录到Facebook。
请享用
我遇到了同样的问题。 我发现我使用了错误的hashkey。 keytool打印错误的hashkey,因为我运行带有错误别名的命令。
请再次检查您的命令。它将解决您的问题
keytool -exportcert -alias "test fb sdk" -storepass android -keypass android -keystore "C:\keystore.keystore" | openssl sha1 -binary | openssl base64
我遇到了类似的问题。 解决方案非常简单。
错误消息如下所示:
07-05 ...... Invalid key hash. The key hash sL1***************VY= does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/150*******778
07-05 ...... at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:191)
只需登录https://developers.facebook.com/ ,选择“设置”选项卡,然后将密钥哈希“sL1 *************** VY =”添加到已保存的列表中Android面板中的键哈希值。
经过几个小时的尝试,我终于找到了解决方案。
- 删除Facebook网站上的任何应用程序(developers.facebook.com)
- 删除
C:\Users\yourUserName\.android
下的文件debug.keystore - 生成一个新密钥(再次运行您的应用程序)
- 在developers.facebook.com上创建一个新应用程序并添加新的哈希键
- 重新运行您的应用
- 更迭!
这是一个可能发生的案例,解决了我的错误:
运行后在https://developers.facebook.com/quickstarts
OSX / Linux的:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
视窗:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
当Enter keystore password:
被问到您可能不小心输入了错误的密码时 ,默认密码为“ android ”。 键入任何其他密码将为您提供不同/错误的哈希键。 将正确的哈希键粘贴到应用页面的“ Key Hashes
字段中
这解决了我的问题,希望这能帮助我做出这个特殊错误的人