在手机上安装FB应用程序时,Facebook APIlogin失败

我正在构build一个应用程序,它将支持Facebook。 我已经从原始Git仓库下载了Facebook API和他们的样本,称为“Hackbook”。 问题是login – 如果原来的FB应用程序没有安装在手机上,login是通过自定义对话框,一切正常,但如果FB应用程序安装,Hackbook自动redirect到原来的FB应用程序,然后什么都没有发生。 这是不可能的login。 我已经testing了五个不同的手机,总是是同样的问题。

Solutions Collecting From Web of "在手机上安装FB应用程序时,Facebook APIlogin失败"

我有一个类似的问题。 在我的情况下,我没有使用我的签名密钥创build一个哈希键。 我只有一个使用debug.keystore默认签名密钥创build的哈希键。

只要我使用我的应用程序版本签名密钥创build了一个哈希键,那个问题就被解决了。 如果您尚未完成此操作,请使用您的签名密钥(用于在市场上上传)创build一个新的哈希键,然后将其添加到您应用的Facebook控制面板中。

希望这可以帮助。

我已经努力了两天,终于得到了解决scheme,这是得到散列键的错误方法 –

keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* | [openssl_bin_directory]\openssl sha1 -binary | [openssl_bin_directory]\openssl base64 

正确的方法是input这三行,一次一个cmd。 在第一行之后,您将被要求插入密钥库密码。

 keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* > [openssl_bin_directory]\debug.txt [openssl_bin_directory]\openssl sha1 -binary [openssl_bin_directory]\debug.txt > [openssl_bin_directory]\debug_sha.txt [openssl_bin_directory]\openssl base64 -in [openssl_bin_directory]\debug_sha.txt > [openssl_bin_directory]\debug_base64.txt 

如果你想知道细节,这里描述的是正确的方法 –

http://facebook.stackoverflow.com/questions/13281913/app-is-misconfigured-for-facebook-login-with-release-key-hash

或在这里

Facebook的Android生成密钥哈希

让你使用这个函数(debugging和释放apk)的哈希键,并把它放在你的应用程序在developer.facebook.com/apps

 private void calculateHashKey(String yourPackageName) { try { PackageInfo info = getPackageManager().getPackageInfo( yourPackageName, 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) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } 

这帮助我很多..希望这也会帮助你..

我已经解决了这个问题。 通过使用keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64获取Key hash后, keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64 keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64我已经在发布模式keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64一次成功login…然后第二次我得到了常见的错误您的键"*********real*key************"与您的应用程序设置中指定的允许的键不匹配。

只需使用Facebook给出的"*********real*key************" ,即可在发布模式下成功login错误消息。 所以一定要在input这个密钥时使用完全相同的密钥。 small(L) ie (l)字母small(L) ie (l)会使你陷入困境。 我做了两个键,在我用的第一个键small(L) ie (l)和第二个键我已经使用了我,并将这些键放在开发人员的应用程序。
它正在工作….

在我的情况下,问题是,即使在生成正确的密钥后,当facebook应用程序安装在设备上时,用户login也会被取消。

我login之前添加了以下行,它很好。

 LoginManager.getInstance().logOut();