2010-02-11 80 views
2

我一直在使用Google App Engine開發Facebook應用程序,使用Python和pyfacebook bindings。幾周來一切正常,但突然停止。Facebook使用GET代替POST調用Google App Engine代碼

起初我以爲這是一個代碼更改,所以我把整個開發目錄回滾到我知道工作的版本,但仍然失敗。我對應用程序設置所做的更改可能會導致問題,但如果是這樣,我無法弄清楚。

我已經知道問題在於,不是調用我的Main類的post(self)方法,而是使用GET調用Facebook。

有誰知道爲什麼Facebook會使用GET方法而不是POST嗎?這是一個IFrame應用程序。

感謝,

回答

0

雖然我不能完全肯定這是原因,似乎我從FBML應用程序更改爲一個IFrame應用程序。 FBML模式依賴於POST調用,但IFrame似乎使用GET。我從what I read here以及我看到的觀察推斷出這個答案,這是唯一有意義的答案。

1

用戶在使用應用程序時的典型流程始於用戶登陸某個Canvas URL,如http://apps.facebook.com/runwithfriends/。在這一點上,Facebook將加載它的鉻,併爲您的應用程序呈現標籤。你會注意到沒有指定src。使用一些JavaScript和標籤,Facebook觸發一個POST請求到您的應用程序。這是出於安全原因而完成的,因爲只要它作爲POST數據發送,敏感用戶數據就不會通過HTTP Referrer頭髮送。

相關問題