Android上的Facebook身份验证重定向到Facebook Android应用程序

时间:2011-08-08 18:03:09

标签: android facebook-authentication

我正在开发一款需要通过Facebook帐户进行身份验证的Android应用。 对于身份验证,我使用了Facebook提供的TutorialProject

当手机没有安装标准的facebook应用程序时,身份验证工作正常,我的应用程序正常运行。 另一方面,如果移动设备安装了Facebook应用程序,我的应用程序将停止工作,并在验证后直接进入Facebook应用程序。

有谁知道我该如何解决?

1 个答案:

答案 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

  • Openssl :如果您没有openssl,请从此处安装:WindowsMAC。对于Mac,请按照here

  • 说明操作
  • 无效密钥哈希:无论未知的debug.keystore位置或密码错误,keytool都会以静默方式生成keyhash。运行示例应用程序时,使用adb logcat跟踪错误。无效密钥返回的错误是 Facebook-authorize(2631):登录失败:invalid_key 。无效键盘的可视指示是指SSO在不提示任何屏幕或GDP对话框的情况下滑入和滑出Facebook应用程序。如果您收到此错误,则几乎没有可能:

    • keytool找不到您的debug.keystore位置。确保提供正确的路径。一种方法是知道keytool应该在具有正确位置时始终询问密码。

    • 您输入的密码不正确。默认密钥库密码:“android”。

    • 在Facebook上的开发者应用中添加keyhash时,您需要点击“保存更改”。

    • 如果全部失败,请尝试使用cygwin或linux框生成哈希密钥。