我一直在使用Python中的Google App Engine和pyfacebook bindings开发一个Facebook应用程序。几个星期以来一切都很好,但突然停了下来。
起初我认为这是一个代码更改,所以我将整个dev目录回滚到我知道的版本,但仍然失败了。我对应用程序的设置所做的更改可能会导致问题,但如果是这样,我就无法弄清楚是什么。
我发现问题在于,不是调用我的Main类的post(self)方法,而是使用GET调用。
有谁知道为什么Facebook会使用GET方法而不是POST?这是一个IFrame应用程序。
谢谢,
答案 0 :(得分:1)
用户在使用应用程序时的典型流程始于用户登陆某个Canvas URL,例如http://apps.facebook.com/runwithfriends/。此时,Facebook将加载它的chrome,并为您的应用程序呈现标记。你会注意到没有指定src。使用一些JavaScript和标签,Facebook会向您的应用程序发出POST请求。这是出于安全原因,因为敏感用户数据不会通过HTTP Referrer标头发送,只要它作为POST数据发送即可。
答案 1 :(得分:0)
虽然我不完全确定这是原因,但似乎我从FBML应用程序更改为IFrame应用程序。 FBML模式依赖于POST调用,但IFrame似乎使用GET。我从what I read here以及我所看到的观察中推断出这个答案,这是唯一有意义的答案。