我正在开发一款需要通过Facebook帐户进行身份验证的Android应用。 对于身份验证,我使用了Facebook提供的Tutorial和Project
当手机没有安装标准的facebook应用程序时,身份验证工作正常,我的应用程序正常运行。 另一方面,如果移动设备安装了Facebook应用程序,我的应用程序将停止工作,并在验证后直接进入Facebook应用程序。
有谁知道我该如何解决?
答案 0 :(得分:1)
看起来你正在使用单点登录哪个btw是正确的做法,它将通过Facebook应用程序授权,如果它存在于手机上,否则通过webview对话框重定向。您是否已将应用程序的keyhash添加到facebook开发人员的应用程序中?
有关SSO和keyhash的更多说明:
https://developers.facebook.com/docs/guides/mobile/#android
关于keyhash的几点说明:
密钥哈希参考文档:Signing Your Applications。
未找到Keytool命令错误:Keytool由标准Android SDK提供。如果您收到“未找到命令”错误,则需要将其路径添加到全局“路径”或转到文件夹以运行此命令。 Windows上的标准位置是C:\ Program Files(x86)\ Java \ jdk1.6.0 \ bin,对于MAC,其/ usr / bin
无效密钥哈希:无论未知的debug.keystore位置或密码错误,keytool都会以静默方式生成keyhash。运行示例应用程序时,使用adb logcat跟踪错误。无效密钥返回的错误是 Facebook-authorize(2631):登录失败:invalid_key 。无效键盘的可视指示是指SSO在不提示任何屏幕或GDP对话框的情况下滑入和滑出Facebook应用程序。如果您收到此错误,则几乎没有可能:
keytool找不到您的debug.keystore位置。确保提供正确的路径。一种方法是知道keytool应该在具有正确位置时始终询问密码。
您输入的密码不正确。默认密钥库密码:“android”。
在Facebook上的开发者应用中添加keyhash时,您需要点击“保存更改”。
如果全部失败,请尝试使用cygwin或linux框生成哈希密钥。