2011-04-06 56 views
1

我必須將Facebook Credits添加到我的應用程序,爲了做到這一點,我必須激活「Canvas 2.0 OAuth 2.0」,該應用程序應該向我的應用程序發送signed_request當第一次啓動應用程序時,Facebook的「signed_request」是空的

但我注意到,當我第一次啓動應用程序後不使用它一段時間(或在不同的瀏覽器),signed_request是空的。如果我重新加載頁面,那麼它在那裏。但第一次,它總是空的。我使用$ _REQUEST ['signed_request']來獲取它。

我的猜測是,這必須以某種方式與cookie或會話過期有關。

任何想法?

+0

我發現了一些可能有所幫助的功能:第一次調用該應用程序時,它確實獲得了已簽名的請求。但是,require_login()強制頁面重新加載,並且當它重新加載時,signed_request爲空。這隻會發生,如果你沒有使用該應用一段時間,或者如果你刪除的cookie。順便說一句,我不得不使用require_login的特殊版本,以防止它重定向到我的託管網址(而不是應用程序的URL)...我從這裏得到了技巧http://www.foobots.net/breakouts.html( iframe_require_login) – Cristian 2011-04-06 18:51:49

+0

到目前爲止,我想唯一的解決方案是隻使用圖形api的一切,擺脫REST api – Cristian 2011-04-06 20:32:17

回答

0

答案:signed_request WAS在打開應用程序時發送。但是然後require_login()導致頁面重新加載(並不總是,但有時),然後signed_request正在丟失,導致sign_request沒有被髮送的錯覺。

解決方案:我用GRAPH API調用替換了所有REST API調用。

希望這些信息對某人有用!

3

在您的應用設置中,請務必在您的應用路徑(或標籤網址)上放置尾部斜線 - 「/」。將其他設置保留爲默認值。

+1

感謝您的答覆。不知道現在我使用GRAPH api而不是REST是否與此相關,但可能會對其他人有所幫助。 – Cristian 2011-06-16 01:29:12

相關問題