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

标签 android facebook-authentication

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

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

有人知道我该如何解决吗?

最佳答案

看来您正在使用单点登录,顺便说一下,这是正确的做法,如果手机上存在 Facebook 应用程序,它将通过它进行授权,否则通过 webview 对话框重定向。您是否已将您应用的 key 哈希添加到 Facebook 开发者的应用中?

有关 SSO 和 key 哈希的更多说明:

https://developers.facebook.com/docs/guides/mobile/#android

关于keyhash的几点说明:

  • key 哈希引用文档:Signing Your Applications .

  • Keytool command not found error: Keytool 由标准Android SDK 提供。如果出现“未找到命令”错误,则需要将其路径添加到全局“PATH”或转到文件夹以运行此命令。 Windows 上的标准位置是 C:\Program Files (x86)\Java\jdk1.6.0\bin,对于 MAC,它是/usr/bin

  • Openssl:如果您没有 openssl,请从此处安装:Windows , MAC .对于 Mac,请按照说明 here .

  • 无效的 key 散列:不管未知的 debug.keystore 位置或错误的密码,keytool 都会静默生成 keyhash。运行示例应用程序时,使用 adb logcat 跟踪错误。无效 key 返回的错误是 Facebook-authorize( 2631): Login failed: invalid_key。无效 keyhash 的视觉指示是 SSO 在没有提示任何屏幕或 GDP 对话框的情况下滑入和滑出 Facebook 应用程序。如果出现此错误,则有几种可能性:

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

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

    • 将 key 哈希添加到 Facebook 上的开发者应用程序时,您需要点击“保存更改”。

    • 如果这一切都失败了,请尝试使用 cygwin 或 linux box 来生成 hashkey。

关于android - Android 上的 Facebook 身份验证重定向到 Facebook Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986454/

相关文章:

Facebook 阻止的 Android key 哈希

android - 在 requestNewReadPermissions 然后 requestNewPublishPermissions 之后未调用 StatusCallback

javascript - 为什么这个简单的 Facebook Javascript SDK 代码总是失败?

javascript - 从 iOS 模拟器中的 Ionic (Cordova) 应用程序登录 Firebase Facebook

Android反盗版停止补丁

java - Android 中无法使用 JAVA 解决异常处理程序?

java - Android SQLite DB 适配器更新 DB

php - 如何管理通过两次身份验证而来的用户名

java - 在我的应用程序中读/写文件时出现错误

android - 我应该为 sqlite 中的每个数据库操作打开和关闭数据库吗?