提问者:小点点

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


我已经将我的应用程序与脸谱网集成,为此我使用脸谱网的图形API。我正在检索个人资料和朋友信息。它在我的Android设备上运行良好

我的应用程序错误地配置为Facebook登录。按OK返回应用程序而不连接到Facebook。

我不明白是什么问题,无论是与Android版本有关还是什么。

我如何解决这个问题?


共3个答案

匿名用户

我在脸谱网工作,这是一个需要解决的重要问题。这个问题的另一个答案表明,禁用SSO非常糟糕,会让你的应用程序向恶意应用程序开放,这些恶意应用程序可以窃取你用户的脸谱网凭据。

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

在添加此错误消息之前,对话框将在没有警告的情况下自动关闭并静默失败。我们添加此错误消息是为了直观地显示您的Facebook应用仪表板中的应用配置存在问题。对于Android,如果您检查您的LogCat,您会看到按“OK”后,应该会有一条错误消息,该消息将显示更具技术性的说明,说明导致身份验证失败的原因。

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

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

我们添加了可视化错误消息来帮助您。理论上,如果一开始就正确实现,这不会破坏以前的实现。如果您看到此错误消息,则意味着您没有在仪表板上正确配置您的应用程序设置。
仔细检查您的Android Class/Package名称、Android哈希键等。如果您做的一切都正确,您将不会看到此消息。

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

您还可以关注Facebook开发人员报告的外部bug报告以获取更多更新。

匿名用户

尝试这样设置:

首先下载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中打开,菜单Window-

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

打开cmd并键入:

"C:\Program Files\Java\jdk1.7.0_05\bin\keytools"-exportcert-alias androiddebug gkey-keystore"C:\用户\User.android\debug. keystore"|"C:\openssl8e\bin\openssl"sha1-二进制|"C:\openssl8e\bin\openssl"base64

然后按Enter

插入密码:android

您将获得debug. keystore的哈希密钥。

当您导出签名的APK并为应用程序创建密钥库时,只需将cmd调试密钥库别名替换为应用程序的别名,将密钥库路径替换为应用程序新创建的密钥库路径,并插入app. keystore的密码,您将获得签名应用程序的新哈希密钥。

匿名用户

杰西·陈的回答很好。脸书SDK工作正常,不要打破它。

我再次遇到这个问题,发现脸谱网的SDK留档已经更正,现在很好。现在它正在指导如何调试和释放哈希键可以设置;照它说的做。

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

我在FacebookSDK的留档中发现了这个问题。它引导我们使用调试键哈希并将其放入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密钥哈希中。之后,SSO再次适用于您签名的. apk文件。