0

所以我有一些奇怪的行为。

我正在开发一个允许用户将图像发布到 facebook 的应用程序,在调试阶段一切正常。

我在 facebook 上设置了应用程序并在我的应用程序中使用了 app-id,然后我使用了调试哈希键并输入了 facebook。一切正常,就像我说的那样,我能够发布图片。

但是,当我使用我打算用于发布的密钥签署我的应用程序时,该应用程序仍然有效,我能够在 Facebook 上发布图像。这应该是不可能的,因为 facebook 中的 hashkey 仍然是旧的调试密钥,而我的应用程序已经使用了 releasekey。(我使用默认的eclipse方式发布和创建密钥,即:导出->然后创建一个新密钥并使用它来签署应用程序)

当我使用 keytool 检查它时,releasekey 似乎很好,它显示了正确的密钥别名,并且只对正确的密码做出反应。

所以我去头并将releasekeys hashvalue输入facebook,然后我再次在我的应用程序上使用debugkey并尝试发布图像......它仍然有效,这又是不可能的,我现在知道为什么了。

我最后的办法是尝试在我的一个朋友帐户上创建一个新的 Facebook 应用程序。我拿走了他的 app-id 并将 releasehashkey 用于他的 facebook 应用程序。我无法再在 facebook 上发布图片,因为出现了令人讨厌的“发生错误,请稍后再试”错误。

因此,如果有人能告诉我这里到底发生了什么以及我做错了什么,我将非常感激,因为理论上一切都应该按预期工作。

PS:我通过将签名的 .apk 文件放在设备存储上,然后从那里安装它,在我的设备上安装了发布就绪应用程序。我在哪里使用 eclipse 运行配置的调试版本。

编辑:好吧,我做了另一种方法来确认我的假设,我做了以下

我删除了我的 PC 上的调试密钥,因此强制 eclipse 创建一个新密钥,我用 keytool 检查了调试密钥,哈希实际上是不同的。

因此,我删除了设备上的应用程序并从 eclipse 运行该应用程序,从而将其安装在使用新调试密钥签名的设备上。

我再次尝试在 facebook 上发帖,因为调试密钥不同,这一点应该是不可能的。但是我惊呆了,因为它仍然可以发布图像......

我现在的假设是哈希键对 facebook 根本没有任何意义,并且该应用程序实际上绑定到使用 facebook 连接时首次使用的 app-id。此信息似乎存储在 facebook 上的某个位置。

然而,这只是我的一个疯狂猜测,所以如果有人遇到同样的问题并找到答案或有任何关于该主题的情报,我将非常感激。

4

1 回答 1

0

好吧,我要么是愚蠢的要么是盲目的......或者两者兼而有之,无论如何,错误是测试它的应用程序将其沙盒模式设置为禁用,因此任何使用该应用程序和 Facebook 帐户的人都可以发布内容。虽然我朋友的新应用程序的沙盒模式设置为启用,因此只有他能够发布内容。无论如何,这篇文章帮助我意识到我的错误 Android Facebook SDK - 无法接收访问令牌

于 2012-10-18T15:06:21.243 回答