2012-04-25 130 views
4

我有一個網站,我使用Facebook API讓用戶邀請他們的朋友到我的網站。這些朋友將在他們的Facebook上獲得應用邀請,一旦他們點擊並接受它,它會在我的網站(在Facebook內)打開一個頁面。帶有參數的Facebook畫布網址?

這一切都很好,但我想添加一個引用ID的URL。所以我可以告訴他們是誰得到了邀請。

是否可以將(動態)參數添加到畫布URL?

我還沒有能夠找到如何做到這一點。

(我正在使用JS庫)。

回答

3

我能多PARAMS傳遞給我的畫布頁。不太清楚爲什麼這不適合你或@JanCanning。我能夠成功重定向到https://apps.facebook.com/MY-APP?param1=x&param2=y&param3=z並在加載到iframe中的代碼中檢索它們。

如果您對邀請使用apprequests,則無法操作請求url,因此不知道您計劃如何操作請求url。這是一個牆貼機制嗎?

但是,如果您使用apprequests邀請 - 您可以傳遞一個可選的「數據」參數。這可以是任意的JSON或簡單的字符串。當收件人點擊通過邀請時,您將在Facebook的請求重定向器中提供「request_id」參數。例如HTTP:您-INVITE重定向的URL request_ids = REQUEST_ID?如果來自同一應用的多個邀請被髮送給用戶,您將以逗號分隔列表的形式獲得request_ids。您可以撥打回到facebook圖表api端點的請求,並獲取請求的所有信息 - 包括您通過的「數據」參數。這可能對你更好,因爲你已經在請求中嵌入了所有數據。在對話框

此處瞭解詳情:https://developers.facebook.com/docs/reference/dialogs/requests/

1

傳遞到Google Apps網址一個參數傳遞到iframe中

http://apps.facebook.com/app_name/?param=hello

+0

你有這方面的任何文檔? Facebook似乎不會傳遞參數。 – Joe 2012-05-08 16:24:18

+0

不,只是通過我自己的測試,它似乎只適用於單個參數,所以我會修改我的答案 – 2012-05-30 14:53:08

+0

順便說一句,app_data獲取參數做到這一點 – Joe 2012-05-30 21:47:14

0

要添加到@ iyerrag的回答,從你的畫布處理程序中獲取數據PARAM,你要回調到Facebook的圖形API。該調用採用http查詢中傳遞的request_id之一,也是一個訪問令牌。我能夠使用我們的應用程序的訪問令牌(生成像這樣的Creating App Token)。

返回的JSON文檔包含您在關鍵'data'中的數據參數中傳遞的值。

這裏的要點,在Python:

requestIDStr = self.request.get('request_ids','') 
requestIDs = requestIDStr.split(',') 
requestID = requestIDs[0] 

if requestID: 
    url = """https://graph.facebook.com/{}?access_token={}""".format(requestID, fbAccessToken) 
    try: 
     response = urllib2.urlopen(url) 
     responseDoc = response.read() 
     jsonResponse = json.loads(responseDoc) 
     dataParam = jsonResponse['data'] 
    except Exception as e: logging.warning('unable to retrieve data param: {}'.format(e))