我在我的应用程序中使用本机 Facebook API。
我正在尝试使用 facebook id 登录到我的 Android 应用程序,但它显示 facebook 错误invalid
键。
我该如何解决这个问题?
我在我的应用程序中使用本机 Facebook API。
我正在尝试使用 facebook id 登录到我的 Android 应用程序,但它显示 facebook 错误invalid
键。
我该如何解决这个问题?
http://sean.lyn.ch/2011/07/android-the-facebook-sdk-sso-and-you/
这个问题早已在此处(以及 Facebook Android SDK)得到解答,但我将尝试为最终偶然发现此线程的任何人提供完整的解决方案。
我正在使用 Facebook Android SDK 结合 Phonegap 和 Phonegap Facebook 插件进行开发。身份验证步骤工作得很好,直到我从在模拟器上部署到实际设备。我在运行 adb logcat 时看到的失败如下:
D/Facebook-authorize( 2194): Login failed: invalid_key
W/System.err( 2194): com.facebook.android.FacebookError: invalid_key
我不知道为什么这在模拟器上有效但在设备上失败了。我怀疑 Facebook 有一项全面政策允许未签名的 .apk 应用程序,因为它们无法分发。
问题是 Facebook 需要有关用于签署应用程序的密钥的信息才能允许授权。我不知道的是,当您使用调试密钥库将构建推送到设备时,eclipse 环境会自动对构建进行签名。Android 文档 - 签名应用程序中提供了有关 Debug 密钥库的详细信息。
为了向 Facebook 提供有关签名的信息,您需要运行 Jay 提供的上述命令(在此重复):
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
这会生成一个短字符串(可能包括诸如“=”或“/”之类的字符),用于标识称为证书的签名。一旦你有了这个,你需要把它交给 Facebook。
在 Facebook 的开发者页面上找到您的应用程序(如果您还没有设置,则创建一个新应用程序)。进入应用程序摘要页面后,选择编辑设置,然后选择左侧的移动和设备。在 Android 部分下,您会看到一个 Key Hash 框。将上述命令中的证书字符串粘贴到此框中,然后点击保存。
给它几分钟来传播,你应该准备好了!
作为一个初学者,当生成密钥散列的标准过程从来没有像您希望的那样容易工作时,我感到很困惑。
然而,我确实搜索了很多,发现在这个网站上生成哈希键的这种非常简单的方法:http ://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1
生成 has 密钥后,您可以按照 facebook 指南在应用程序的控制面板中将哈希密钥添加到您的应用程序。
希望这可以帮助。