2011-03-05 46 views
4

所有Facebook的對話框示例都顯示了一個頁面,用於將用戶重定向到http:// www.facebook.com/dialog/xxx?yyy ...除了請求對話框,其中顯示了使用FB.UI()的示例在JavaScript SDK中。Facebook的請求對話框可以用作顯示器:iframe還是display:page?

http://developers.facebook.com/docs/reference/dialogs/requests/

我的問題,而不是Facebook的文檔上的任何地方解決,是可以請求dislog通過引導瀏覽器http://www.facebook.com/dialog/apprequests訪問?...

我一直在嘗試了幾個小時,但我不斷收到「對不起,發生錯誤」。我做錯了還是不能做?

+0

你解決了嗎?請在下面選擇正確的答案。 – kkampen

回答

1

你不能讓一個請求對話框表現爲直接頁,但你可以使用XFBMLfb:request-form成,比方說,invite.php頁到您的應用創建的請求邀請表單。

http://developers.facebook.com/docs/reference/javascript/fb.xfbml.parse/ http://developers.facebook.com/docs/reference/fbml/serverFbml/

+0

我一直在鼓勵不要使用FBML或fb:serverFBML,因爲它現在不能工作,或者很快就會折舊。有沒有其他方式可以在不使用FB.UI()的情況下向用戶顯示請求表單? – user548084

+2

FBML將被棄用,而不是XFBML。看看:http://developers.facebook.com/roadmap/如果還有其他方法,我也想知道它! –

0

正如Gokhan Ozturk所說,您可以爲Apprequests指定(顯示:'iframe')。

對於這個工作,你必須爲用戶提供一個訪問令牌:

FB.ui({ 
    method: 'apprequests', 
    display: 'iframe', 
    access_token: Users Access Token Here, 
    title: 'Sample Title', 
    message: 'Sample Message', 
    data: 'some data here', 
    filters: ['all'], 
}, 
function(response) { 
    if (response && response.request_ids) { 
    alert('Request was sent'); 
    } else { 
    alert('Request was not sent'); 
    } 
}); 

你也想FB.init()通過JSDK,但你可以做到這一點不使用它控制用戶訪問令牌和認證,

FB.init({ 
    appId: 'Application Id', 
    status: false, 
    cookie: false, 
    xfbml: false 
}); 

這爲我工作,我在那裏用PHP進行身份驗證,同時還需要與JavaScript SDK訪問fb.ui功能。

顯示:「IFRAME」 - 應適用於所有的對話框方法 「朋友」,「進」,「送」等

1

我試圖調試這個有很多。

這似乎已經奏效,一旦最後的代碼是

<iframe src="https://www.facebook.com/dialog/apprequests?access_token=xxxx&api_key=xxxx&app_id=xxxx&display=iframe&frictionless=false&locale=en_US&message=abc&next=xxxx" frameborder="0"> 

我得到這個對瀏覽器的一個工作,但是當我在另一瀏覽器試試我連續不斷收到以下錯誤。

API錯誤代碼:110 API錯誤說明:用戶ID無效 錯誤消息:缺少用戶的cookie(驗證會話用戶)

什麼來設置用戶cookie的最佳方式? Facebook連接也許?我可能會在Facebook應用程序內某處使用此代碼並檢查它是否有效。我認爲它現在只是cookie問題..我也嘗試手動提供& user_id,但它沒有奏效。

這絕對不會與http國際海事組織,它必須是https。

相關問題