facebook connect仍然可以使用release-hashvalue,而facebook上的hashvalue仍然是debug-hashvalue

时间:2012-10-17 13:26:43

标签: android eclipse hash publish signing

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

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

我在Facebook上设置了应用程序并在我的应用程序中使用了app-id,然后我使用了debug hashkey并进入了facebook。一切都很好,就像我说的那样,我能够发布一张图片。

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

releasekey似乎很好,因为我用keytool检查了它,它显示了正确的keyalias并且只对正确的密码作出反应。

所以我去了一个脑袋,然后在facebook中输入了releasekeys hashvalue,然后我又在我的应用程序上使用了debugkey并尝试发布了一个图像....它仍然有用,这也是不可能的,我现在知道为什么

我的最后一招是尝试在我的一个朋友帐户上创建一个新的Facebook应用程序。我拿了他的app-id并使用releasehashkey作为他的facebook应用程序。我无法在facebook上发布图像,因为烦人的“发生了错误,请稍后再试”发生错误。

所以如果有人能够告诉我这里到底发生了什么以及我做错了什么,我会非常感激,因为从理论上讲,一切都应该按预期进行。

P.S:我通过将已签名的.apk文件放在设备存储上,然后从那里安装,在我的设备上安装了release ready app。调试版本在哪里我使用了eclipse运行配置。

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

好吧,我要么是愚蠢的,要么是盲目的......或者两者兼而有之,无论如何,错误是测试它的应用程序将其沙箱模式设置为禁用,因此使用带有facebook帐户的应用程序的任何人都可以发布内容。虽然我的朋友的新应用程序的沙盒模式设置为enanbled,因此只有他能够发布的东西。无论如何,这篇文章帮助我实现了我的错误Android Facebook SDK - Failed to receive access token