2010-06-25 75 views
5

我正在構建一個Facebook應用程序,該應用程序中包含發送到朋友功能。Facebook請求 - 如何通過自定義變量從請求頁面

給每個用戶一個特定的用戶密鑰,用於標識他們和他們自己。

所以一個人邀請的人B.

所以當某乙被邀請,當他們點擊接受,我們通過引薦用戶鑰的網址... 例如http://mydomain.com.au/return_user.aspx?referrerkey=iuahsduiahsdfuiha

因此,當人B已經安裝了fb應用程序時,referrerkey變量會傳回我們的網站,因此我們可以管理這兩個用戶之間的鏈接。

但是,如果B人沒有添加該應用程序。然後Person B點擊用戶必須通過的「允許訪問」頁面上的邀請頁面上的ACCEPT按鈕,然後將它們導回APP主頁,而不需要任何變量。例如。 referrerkey。

那麼我怎樣才能讓這兩個用戶已經添加了應用程序,並沒有添加應用程序?

回答

1

我知道的唯一選擇是添加應用程序並與朋友鏈接兩個獨立的進程。

2

假設您使用PHP的facebook SDK和畫布應用程序,您可能使用require_login()將用戶重定向到身份驗證屏幕。默認情況下,身份驗證屏幕會將用戶發送回您在應用設置中設置的畫布網址。

爲了解決這個問題,請將一個名爲「next」的GET參數與urlencoded URL一起作爲值。如果幸運的話,您的facebook SDK版本可能會預設此代碼,但不會啓用。在Facebook課程中尋找'& next ='。

4

是的,請求2.0流將始終將用戶重新放回到畫布主頁上 - 不要避免這種情況。

但是,當您創建請求時,您可以將「data」參數添加到請求對象,並將所需的任何數據放入其中。然後,在畫布的主頁上查詢signed_request中的數據。設置一個變量,如user_id或某個應用特定的變量,遊戲#或其他東西。如果存在,則重定向到更適用的頁面或路線。

您可以識別您的應用的條目 - 通過其他非請求重定向到我們的畫布主頁 - 因爲request_ids中會出現signed_request。

請注意,您也可以獲取請求ID,並從Facebook獲取對象,該對象將具有「from」引用。所以你不需要傳遞這些信息。

+0

我也在尋找我的方式來Facebook請求...說...通過「app_data」你的意思是「數據」參數列在這裏,https://developers.facebook.com/docs/reference/對話/請求/是嗎? – 2012-06-12 22:21:05

+1

@luca yes-舊名稱是「app_data」新的一個是「data」(因爲它出現在返回的signed_request數組中,它是「data」 – 2012-06-12 22:39:25