Facebook Android SDK Invalid_key

可能重复:
Facebook SDKlogin失败的无效键错误

我正在使用一个示例应用程序在这里ibm.com/developerworks/library/x-androidfacebookapi/来testingfacebook android的SDK,我已经在这个示例应用程序给我的APP ID。 我已经完成了所有的设置和先决条件。 我已经与我的密钥库签名应用程序,并生成散列键,我提交了Facebook应用程序设置页面的散列键,我安装了Facebook应用程序在我的设备上。 但毕竟做的应用程序给Facebook错误invalid_key。 请在这方面帮助我,谢谢。

Solutions Collecting From Web of "Facebook Android SDK Invalid_key"

无效的密钥可能是由于多种原因 –

  1. 确保你已经安装了Keytool和OpenSSL。
  2. 确保在命令中给出了正确的Keystore文件。
  3. 确保你给出了正确的别名。
  4. 确保您正确地将生成的哈希键正确地复制到Facebook应用程序。

当我最初得到无效密钥时,那是因为我给了错误的别名。 奇怪的是,Keytool和OpenSSl不会提到这个别名是错误的。 如果你给命令生成哈希密钥,而不要求你input密码,那么你可能是做错了。

在同样的问题挣扎了几天后,我写了一个关于这个问题的完整解释和这里的各种修正:

http://sean.lyn.ch/2011/07/android-the-facebook-sdk-sso-and-you/

我在做这个工作之前碰到了一些事情:

1)在Linux中生成你的哈希。 Windows(至less对我来说,64位)没有生成正确的散列。 下载Cygwin bash shell并从那里执行。

2)在密钥库的文件path中,一切都应该是正斜杠。 即使在C :. 因此,例如,C:/Users/YourName/.android/debug.keystore,NOT C:\ Users / YourName / .android / debug.keystore。

3)应包含哈希结尾的等号。 也许这对一些人来说是显而易见的,但我想我应该提到它。

它应该提示你input密码。 如果没有,你做了一些不正确的事情。

我也有这个问题,没有真正find如何解决,直到我发现这一点

http://support.getsocialize.com/socialize/topics/facebook_auth_key_issue_adding_the_invalid_key_from_logcat_seems_to_fix_sso?from_gsfn=truethread

每个帮助主题都指出密钥哈希没有被正确填写。 多次检查并多次使用keytool后,我知道我正确地填写了它。 上面的链接是关于这个问题得到满意的,并且在那里提供的解决scheme为我工作。 只需将您在popup窗口中看到的密钥复制到Facebook开发者页面的哈希框中。 它可以与keytool得到的散列一起添加。

在解决这个问题的时候我发现了一些东西。 – 我总是使用keytool命令中的完整path – inputkeytool命令时,确保要求input密码 – 要确定是否在de keytool命令中正确input了密码,请首先提供一些密码,你的密码导致它也会生成一个散列。 如果密码不正确,它总会给出相同的散列。 所以要检查你是否input你的密码正确比较它到一个错误的密码散列。 – 这个错误只发生在facebook应用程序也在电话中,我相信这意味着错误不在身份validation本身,这使得我在我的代码中search几个小时的错误,而没有(至less不是在身份validation部分:p) – 我有幸拥有多个testing设备,显示代码中没有错误,但在validation阶段sdk或其他部分出现错误。

我希望这个信息能够帮助遇到这个问题的人解决这个问题。

亲切的问候汤姆

一直有这个问题,我用cmd提示符来生成密钥,并且在我定义了windows系统设置中openssl和keytool的path之后,它就工作了。

我在eclipse中设置了Facebook应用程序,并且在AVD上工作的很好,但是同样的程序在安装到我的连接时导致了Facebook错误无效的键。

我得出的结论是设备有自己的密钥,不能使用密钥库中的密钥。

这不是合乎逻辑的“相同”keytool命令在Windows和Linux中给出不同的结果。 从Linux获得的哈希键,从Windows失败。 你可以试试!

Windows中的openssl从这里安装: http : //code.google.com/p/openssl-for-windows/

我有同样的问题,最后我find了解决scheme:使用Cygwin的Windows用户。 Windows的结果与linux / iOS不同。 所以安装Cygwin,这很容易,如果你想使用NDK,你也需要cygwin。 运行上面列出的命令复制输出,它将工作。

其实这是Facebook SDK中的问题,如果你卸载com.facebook.katana,那么你的应用程序将工作得很好。 我没有这个问题的永久解决scheme,但暂时它会工作

今天,你无法使用Cygwin获得Windows EVEN的正确密钥。 您必须在MacOS或Linux下执行此操作。 这是一个问题。 希望他们很快得到解决。

我遇到了同样的问题,我想其他许多人也遇到了同样的问题。 Windows上的密钥存储在默认的用户目录下,例如C:\ Users \ User Name.android \

它失败了,因为我正在进入完整的path,它有一个以用户命名的文件夹中的空格(“”)。 如果您在path中加上引号,则可能会起作用,并且应该提示您input密钥库密码。

例如keytool -exportcert -alias androiddebugkey -keystore“C:\ Users \ User Name.android”| openssl sha1 -binary | openssl base64

我正在使用Windows 7并使用以下方法修复问题:

keytool -export -alias androiddebugkey -keystore "[PATH]\debug.keystore" -storepass android -keypass android | openssl sha1 -binary | openssl enc -a -e 

您可以下载OpenSSL for Windows

我修正了这个错误:

如果你添加授权行这个代码

 Facebook.FORCE_DIALOG_AUTH mFacebook.authorize(MundialRugby2011Activity.this, new String[] {"publish_stream", "read_stream", "offline_access"},Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener());