应用程序被错误配置为Facebook登录:Android Facebook集成问题

我已经将我的应用程序与Facebook集成,为此,我使用Facebook的Graph API。 我正在检索个人资料和朋友信息。 它在我的Android 2.3(姜饼)设备上工作正常,但最近我的客户在尝试通过我的应用连接到Facebook时遇到了问题。 他的设备上安装了Android 4.0(冰淇淋三明治)。 当他点击应用程序中的一个按钮并将其带到Facebook登录屏幕时,登录后他会收到一条消息:

我的应用程序被错误地配置为Facebook登录。 按“好”返回到应用程序,无需连接到Facebook。

Facebook错误消息

我不明白它是与Android版本还是什么有关的问题。

我该如何解决这个问题?


我在Facebook工作,这是一个需要解决的重要问题。 对于这个问题的另一个答案表明,禁用SSO非常糟糕,并会将您的应用打开到可以窃取用户的Facebook凭据的恶意应用。

hack会在没有SSO的情况下启动到Facebook的WebView对话框,并且用户必须在登录对话框中输入登录凭证。 恶意应用程序可以轻松窃取这些信息。 始终建议正确实施Facebook SSO,以确保您的应用安全并保护用户的敏感数据。

在添加此错误消息之前,对话框会自动关闭而不会发出警告,并以静默方式失败。 我们添加了此错误消息,以直观显示您的Facebook应用程序仪表板中的应用程序配置存在问题。 对于Android,如果您检查LogCat,您会在按下“Okay”后看到一条错误消息,该消息将显示更多关于导致身份验证失败的技术说明。

例如,如果您使用我们的Hackbook示例并且没有在源代码中提供您自己的APP_ID,并且未将哈希键添加到仪表板,则在本机SSO对话框中按下“Okay”后,您会在LogCat中看到此错误(if Util.ENABLE_LOG设置为true):

D / Facebook授权(24739):登录失败:invalid_key:Android密钥不匹配。 您的密钥“uk3udeH7vrOGNFH2FJjdJbdWJWI”与您的应用程序设置中指定的允许密钥不匹配。 请在http://www.facebook.com/developers查看您的应用程序设置

我们添加了视觉错误消息来帮助你。 理论上讲,这并不会破坏以前的实现,前提是它已经正确实施。 如果您看到此错误消息,则表示您没有在仪表板上正确配置您的应用设置。
仔细检查你的Android类/包名称,Android哈希键等。如果你做的一切正确,你将不会看到这个消息。

总之 ,您正在收到该错误消息,因为您的应用配置存在问题,例如,仪表板中的Android哈希键之间不匹配。 在Facebook添加此错误消息之前,对话框将启动,然后自动关闭并失败。 要解决这个问题,请检查您的LogCat是否有任何错误消息,并确保您已正确实施一切。 您可以阅读我们的文档以确保您的一切正确。 不要使用这个问题的接受答案。

您还可以关注Facebook开发者报告的外部错误报告以获取更多更新。


尝试像这样设置它:

首先下载OpenSSL(如果您有64位机器,则必须下载openssl-0.9.8e X64 ,而不是最新版本,openssl-0.9.8k X64,因为输出无效)。 提取你的文件,创建文件夹openssl ,例如用C:/在那里复制文件。

找到你的路径keytoo。 我的是C: Program Files Java jdk1.7.0_05 bin。

找到您的路径debug.keystore 。 你可以看到如果你在Eclipse中打开什么路径,菜单窗口 - >首选项 - > Android - >生成,你会看到默认调试密钥库: - 和路径。

找到你的路径openssl 。 我的是C: openssl8e bin /。

打开cmd并输入:

“C: Program Files Java jdk1.7.0_05 bin keytool”-exportcert -alias androiddebugkey -keystore“C: Users User.android debug.keystore”| “C: openssl8e bin openssl”sha1 -binary | “C: openssl8e bin openssl”base64

Aand然后按Enter键。

插入密码: android

你将得到你的散列键为debug.keystore

当您导出已签名的APK并为该应用程序创建密钥库时,只需将cmd debugkeystore别名替换为应用程序的别名即可,该密钥库路径包含该应用程序新创建的密钥库的路径,并为您的app.keystore插入密码app.keystore ,你会得到一个新的哈希键为您的签名应用程序。


Jesse Chen的回答很好。 Facebook的SDK工作正常,不要打破它。

我再次遇到这个问题,并发现Facebook SDK文档已更正,现在非常好。 现在指导如何调试和释放散列键可以设置; 就照它说的去做吧。

以下是我的旧故事。 缺少您可以设置两个哈希键,一个用于调试,另一个用于旧版Play商店的已发布应用程序。


我发现这个问题在我的Facebook的SDK文档中的情况。 它引导我们使用调试密钥散列并将其放入Facebook的应用配置中。 引导哈希得到这种方式:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

当你从Eclipse中调用或运行应用程序时,这工作正常。

但是,如果您将应用程序发布到Andoid Play,则必须使用您自己的发布者密钥来导出已签名的.apk文件。 使用该.apk,Facebook应用程序控制台中的哈希无效! 你必须像这样获得开发者密钥的哈希值:

keytool -exportcert -alias <developer alias> -keystore ~/.android/<developer keystore> | openssl sha1 -binary | openssl base64

并将其放入Facebook应用程序控制台中的Android Key Hash中,以供您发布的应用程序使用。 之后,SSO再次为您的签名.apk文件正常工作。

链接地址: http://www.djcxy.com/p/65195.html

上一篇: App is misconfigured for Facebook login: Android Facebook integration issue

下一篇: Fatal Error on Magento Order Cancellation from customer My Account