我已经查看了google,stackoverflow,整个互联网......但似乎没有什么能解决这个问题。我想我错过了一些可以解决这个问题的细节。以下是解释:
我在我的Android应用程序中集成了FB登录。它在我的设备上工作正常,但是当在其他设备上运行时,当点击登录时,它会请求权限,当给出时,它会返回登录状态...这意味着会话没有在其他设备上打开..我也有在代码下面用来生成散列键:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"MY_PACKAGE_NAME",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
我还使用我的密钥库在应用程序的fb页面上放置了哈希密钥,我使用该密钥库导出应用程序(最后一个)并使用正确的密码通过以下方法生成哈希密钥(注意我使用的是Windows 7):< / p>
keytool -list-alias androiddebugkey -keystore~ / .android / debug.keystore | openssl sha1 -binary | openssl base64
当然,我在上面的命令中使用了我的releasekey和最终的密钥库。它要求输入密码,我给了正确的密码。所以我猜,生成的哈希密钥是正确的。如果使用-exportcert而不是-list,则显示“invalid type -exportcert”。
到目前为止,我已经在fb页面上添加了4个键哈希。沙箱模式已关闭。
自从过去6天以来,我一直在讨论这个问题。我认为哈希密钥存在一些问题,导致其他用户不允许从应用程序打开fb会话。如果你遇到类似的问题,或者可能的解决方案/方法也会有所帮助,请有人帮忙。
感谢您的时间和宝贵的意见。
由于
答案 0 :(得分:0)
keytool -list-alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
我看到你正在使用调试密钥,尝试从eclipse助手导出你的应用程序,然后创建自己的密钥库。创建后再次运行上一个命令,更改密钥名称和密钥库的路径,然后将哈希密钥放在Facebook页面上,并将导出的.apk安装到其他设备中。
“run”选项生成的.apk是使用您的调试密钥签名的,而使用导出助手导出的.apk是使用您的个人密钥签名的。