2011-03-09 45 views
17

我正在一個Facebook應用程序選項卡上,並想用簽名的請求束作爲記錄在這裏: http://developers.facebook.com/blog/post/462/Facebook的IFRAME標籤簽名的請求總是空

我試圖用their example code解包的簽名的請求這應該是傳遞給標籤,但是,$_POST,$_GET$_REQUEST總是全部爲空。

確切的代碼在畫布頁上工作,我能夠解析簽名的請求。

在最近的公告中是否有某些我錯過的東西?

順便說一句,該應用程序沒有發佈到市場上,我的選項卡上安裝的粉絲頁是私人的。這會有所作爲嗎?

-Seth

回答

40

好吧,想通了! 當配置應用程序時,我填寫了「標籤網址」爲「標籤/」 這使得標籤頁的完整url「http://www.example.com/myfacebookapp/tab/」 這對我來說很有意義。

顯然,Facebook不喜歡這樣。將我的「標籤網址」更改爲「tab/index.php」後,簽名的請求開始顯示在應用程序選項卡中!

+0

岩石上的身份驗證爲等。這剛剛幫助了我。 – ceejayoz 2012-08-22 17:34:26

+0

這給我修好了。謝謝! – 2012-12-17 20:24:21

+0

你是對的,但偏袒。這不是Facebook的問題。 Facebook將簽名的請求發送到您在開發人員區域指定的URL。 在我的情況下,我插入'mydomain.com/tab /'作爲標籤URL,但是會發生什麼是我選擇的框架將'mydomain.com/tab /'重定向到'mydomain.com/tab'(注意沒有結尾斜槓)。這是GET重定向(簡單地說),因此簽名的請求丟失。在您的情況下,您將從非結尾的斜槓URL重定向到帶有導致簽名請求丟失的尾部斜槓的URL。 – Andreyco 2014-02-15 18:33:22

4

謝謝Seth我遇到了同樣的問題。畫布頁,但不是我的網頁標籤。爲了澄清

  1. 轉到www.facebook.com/developers/
  2. 點擊編輯設置你的應用程序
  3. 點擊Facebook的集成選項卡
  4. 在在「標籤網址」字段中的「頁面標籤」部分底部輸入index.php頁面的路徑e爲您的Facebook登陸頁面

ex。如果你的頁面位於www.foobar.com/facebook/tab/index.php你需要把「tab/index.php」(不帶引號)而不是「tab /」

一直試圖這幾天!

4

我找到了一個解決方案: 只需在標籤網址的末尾加上「/」即可。 贊:「http://domain.us/facebook/tab/」

它爲我工作,讓我們知道它是否也適用於你!

+0

它是如此愚蠢的Facebook沒有警告,感謝您的技巧,節省了大量的時間。 – destan 2012-04-27 11:25:16

8

本質上,問題在於您的網絡服務器在接收到請求時正在執行重定向。在你的情況下,它將從http://www.example.com/myfacebookapp/tab/重定向到http://www.example.com/myfacebookapp/tab/index.php;在我的情況下,它是從http://www.example.com/myfacebookapp/tab重定向到http://www.example.com/myfacebookapp/tab/(我的應用程序內置.Net MVC,所以沒有文件名,但需要顯然跟蹤斜線)。

因此,規範的解決方案是確保選項卡網址字段中的路徑是實際的網址,而不是網絡服務器將重定向到的網址。如果Web服務器必須重定向,那麼通過GET(而不是POST)獲取實際頁面,並且不會向您的腳本提供postdata。

非常令人沮喪;我只花了一個半小時的時間來調試爲什麼我的測試應用程序工作,而生產一個沒有。更糟糕的是,我知道這個答案,它只是沒有注意到這是問題所在。非常刺激!

+0

很遺憾,Canvas應用程序無法完成此操作,因爲它們必須以'/'結尾 – 2013-01-11 21:00:10

+0

這肯定不是這種情況;我最近沒有查過,但我認爲你可能在那裏弄​​錯了。 – 2013-01-14 10:08:56