我正在构建一个应用程序,该应用程序将支持Facebook。我已经从原始的Git回购站下载了Facebook API和他们的样本,称为“Hackbook”。问题出在登录 - 如果原来的FB应用程序没有安装在手机上,登录正在通过自定义对话框,一切正常,但如果安装了FB应用程序,Hackbook会自动重定向到原来的FB应用程序,然后什么也没有发生。无法登录。 我已经在五种不同的手机上测试过,并且总是出现同样的问题。Facebook API登录失败,在手机上安装FB应用程序
回答
我有类似的问题。在我的情况下,我没有使用我的签名密钥创建散列密钥。我刚刚使用debug.keystore默认签名密钥创建了一个散列密钥。
只要我使用我的应用程序版本签名密钥创建了一个哈希键,就可以解决这个问题。如果您尚未完成此操作,请使用您的签名密钥(用于在市场上上传)创建一个新的哈希密钥,并将其添加到您应用的Facebook控制面板。
希望这会有所帮助。
我已经辛苦了两天&得到最后的解决方案,这是获得哈希键WRONG方式 -
keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* | [openssl_bin_directory]\openssl sha1 -binary | [openssl_bin_directory]\openssl base64
的正道是键入以下3行,一个在以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
如果你想知道的细节,在这里描述的RIGHT方式 -
或这里
获取您使用此功能哈希键(debug和release apk),并将其放入developer.facebook.com/a的应用程序中PPS
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
获得密钥哈希后,我已成功首次在发布模式中登录... 然后第二次,我得到了常见错误 您的密钥"*********real*key************"
与您的应用程序设置中指定的允许密钥不匹配。
只需使用Facebook提供的"*********real*key************"
错误消息,我现在在发布模式下成功登录。 因此,请确保输入此密钥时使用完全相同的密钥。字母I,small(L) i.e (l)
会让你陷入困境。我做了两个键,第一个键我用small(L) i.e (l)
,第二个键我用了I.并将这些键放在开发人员的应用程序中。
它现在正在工作....
这是我的情况确切的问题..唯一的解决方案工作!和关于小'L'的部分是正确的,还有大'我'(这可能看起来像一些字体中的小'L'.. –
在我的情况下,问题是,即使在生成正确的密钥后,当facebook应用程序安装在设备上时,用户登录被取消。
我在登录前添加了以下行,它工作的很好。
LoginManager.getInstance().logOut();
- 1. Facebook登录失败,FB应用程序安装
- 2. Facebook登录失败,并安装了Facebook应用程序
- 3. Facebook登录失败,Android应用程序
- 4. 安装FB应用程序时Android Facebook示例应用程序无法登录
- 5. Facebook的统一SDK在Android上登录时,FB应用程序安装
- 6. 未安装Facebook应用程序时,facebook登录按钮点击失败
- 7. 安卓Facebook登录失败
- 8. 为什么如果facebook应用程序安装在手机上,Facebook登录对话框不会打开
- 9. Facebook的登录 - 如果用户帐户存在(和应用程序未安装)登录失败
- 10. 应用程序安装失败 - 安装应用程序viaOTA
- 11. 扫描Fb QRCode登录应用程序
- 12. Facebook上登录的反应本机应用程序在Android上
- 13. Facebook登录集成在Android应用程序中失败
- 14. Android应用程序与Facebook登录未与Facebook应用程序安装
- 15. 当Facebook应用程序安装时Facebook登录中断
- 16. 已安装Facebook应用程序的Facebook SDK iOS登录
- 17. android如何在手机中安装facebook应用程序
- 18. Android,Facebook SDK和单一登录:我的应用程序因“invalid_key”或Facebook应用程序失败而失败
- 19. FB SDK错误:登录失败(react-native)
- 20. FaceBook API,登录应用程序内
- 21. Facebook登录失败
- 22. Facebook登录失败
- 23. Facebook登录失败
- 24. 在Ubuntu安装的OpenManage - 登录失败
- 25. FB应用程序中的Facebook API调用需要登录(只在IE中)
- 26. Facebook:强制用户使用FBML登录/安装应用程序
- 27. 在Rails 2.3.12和HTTPS失败中安装机架应用程序
- 28. FB iOS登录 - “应用程序必须在安装时询问basic_info权限。”
- 29. Facebook手动登录流程,如果已安装,则在应用程序中打开登录对话框
- 30. MVC Facebook应用程序获取登录失败错误
我在控制面板中添加了哈希键,但问题仍然存在。我还需要在某处添加散列键吗? – virusss8
@ virusss8:你不需要在你的应用程序中添加hashkey。按照这一步并告诉我结果。在facebook-sdk中打开Util类文件,并将'private static boolean ENABLE_LOG = false'更改为'true'。现在,将手机连接到开发PC并运行使用签名的apk创建的应用程序并登录。保持DDMS窗口打开并查看是否生成错误。 –
D/Facebook授权(25124):登录失败:invalid_key:Android密钥不匹配。您的密钥“********* real * key ************”与您的应用程序设置中指定的允许密钥不匹配。请在http://www.facebook.com/developers 检查您的应用程序设置,但我从未在任何地方设置过该密钥。那个关键是什么? – virusss8