2012-04-01 119 views
2

我可以把請求發送到使用「多朋友請選擇」我的頁面標籤應用程序,哪個環節看起來像裏面的朋友:的Facebook SDK:從頁面標籤應用程序發送請求

https://www.facebook.com/<my_page_name>/app_<my_app_id> 

我的朋友收到我的請求,點擊「接受」。它轉發到Facebook應用程序的真實鏈接,即:

https://apps.facebook.com/<my_app_name>/?fb_source=request&request_ids=<an_request_id> 

這不在頁面選項卡內了。在request_ids必須保留的情況下,我如何將用戶轉發到第一個鏈接而不是第二個鏈接?我只是做一個header('Location: url');轉發?

p.s.時間軸已在使用中。

回答

4

是的,你必須轉發到你的網頁網址,因爲請求總是重定向到畫布網址。

要傳遞請求ID,您可以使用app_data字段。所以,而不是重定向到https://www.facebook.com/<my_page_name>/app_<my_app_id>您重定向到https://www.facebook.com/<my_page_name>/app_<my_app_id>?app_data=requestids。這裏的要求是的實際值(畫布獲得的逗號分隔列表)。

app_data可用於您的頁面標籤應用程序作爲它收到的signed_request的一部分。

docs

此外,您的應用程序也將收到稱爲app_data文件作爲signed_request的一部分,如果app_data文件參數在您的標籤裝載在URL中的原始查詢字符串設定字符串參數。對於上面的「立即購買」鏈接,可能如下所示:「https://www.facebook.com/YourPage?v=app_1234567890 & app_data = any_string_here」。如果您控制鏈接的生成,您可以使用它來自定義您呈現的內容。

+1

幾乎完美的答案。重定向鏈接應該是:'https://www.facebook.com//app_ ?app_data = requestids'和PHP'header('Location:url')'在這種情況下不起作用。需要使用客戶端JavaScript重定向。 – Raptor 2012-04-02 01:57:44

+1

很高興它幫助..我沒有提及任何關於'header'因爲它有時候有效,(當你還沒有發送任何輸出到瀏覽器),afaik。網址,我不太確定它的這種形式,我習慣於舊的樣式,'https://www.facebook.com/YourPage?v = app_1234567890&app_data = any_string_here'。無論如何,謝謝,我也學到了一些東西。 – 2012-04-02 07:35:10

+0

僅供參考,這兩種格式的URL都適用,但Facebook在更改爲時間軸後似乎更喜歡我的版本,因爲它是時間軸的默認鏈接格式。 – Raptor 2012-04-02 07:53:46

相關問題