2011-09-01 50 views
1

我有一個應用程序在facebook畫布頁面的iframe中運行。由於這是一個遊戲,我想使它能夠讓用戶共享他們的成績,爲了這個目的,我tryed如下:頁面內的Feed對話框

FB.ui({ 
    app_id: '000000000000000000', 
    method: 'feed', 
    display: 'page', 
    name: 'Dialog Name', 
    caption: 'Caption for dialog', 
    description: 'Lorem ipsum dolor sit amet...' 
}); 

我想是,當這個代碼運行得到什麼,在我的頁面上會出現一個對話框,但是,它總是試圖打開一個窗口,甚至最糟糕的是,我的所有參數在窗口中都被忽略。

我在做什麼錯?

回答

1

您需要指定顯示爲iframe而不是pagepage是無論如何都是默認設置,我不知道您爲什麼指定它)。

你可以在這裏找到更多的信息:http://developers.facebook.com/docs/reference/dialogs/

而且,你不應該需要app_id參數(大部分時間的JS SDK將自動添加爲你)。

編輯

這是我使用:

FB.ui({ 
     display: "iframe", 
     method: "feed", 
     name: "", 
     link: "", 
     picture: "", 
     caption: "", 
     description: "", 
     message: "", 
     actions: {"name":"","link":""} 
    },function(response){}); 
    } 
+1

早些時候我嘗試過,但失敗了(可能是因爲我在一個單獨的頁面中測試它,而不是在我的真實應用程序中。將它發送給iframe並移除app_id。現在,對話框出現,但是,出現錯誤消息:'API Error Code:102' 'API錯誤說明:會話密鑰無效或不再有效' '錯誤消息:Iframe對話框必須使用會話密鑰調用,它會是什麼? – Wanderson

+0

我的應用程序通過PHP加載,然後我加載了Javascript SDK,只是爲了顯示像按鈕並顯示這個對話框,但是,我不知道如何檢索'會話密鑰'。 – Wanderson

+0

您使用最新的PHP SDK(v3.1.1)嗎?如果你是,那麼你不應該提供一個。 – Phillip

0

您應該能夠通過參數來完成該 「顯示: '彈出'」 所以將其更改爲:

FB.ui({ 
    display: "popup", 
    method: "feed", 
    name: "", 
    link: "", 
    picture: "", 
    caption: "", 
    description: "", 
    message: "", 
    actions: {"name":"","link":""} 
},function(response){}); 

}