我正在尝试将stream.publish功能添加到我的网络应用中,但我遇到了“Feed”对话框的问题。
我的代码如下:
var obj = {
method: 'feed',
display: 'iframe',
name: data.name,
link: data.link,
picture: data.picture,
caption: data.name,
description: data.description,
message: data.message,
actions: [{
name: data.actions.name,
link: data.actions.link
}],
user_message_prompt: ''
}
var resp = FB.ui(obj, function(response) {
alert("DONE");
});
如果我使用'popup'代替'iframe',我可以使它工作,但这不是我想要的。
为什么Feed没有出现在我的屏幕上的任何想法???
谢谢!
答案 0 :(得分:1)
如果您指定
iframe
,则必须拥有有效的access_token
。要获得有效的access_token
,请参阅Authentication guide
<强>更新强>
似乎还有其他一些陈述可能会导致这种行为:
iframe
:在当前页面的灯箱iframe中显示对话框。由于存在点击劫持的风险,因此仅允许某些特定对话框,并要求您传递有效的access_token
。
这一个。
在Facebook画布页面上,仅支持iframe应用程序的对话框
还有一个关于“发送对话框”的“发送对话框”未在页面标签中与iframe
一起打开BUG #246637628719849(可能相关,也可能不相关)。
<强> UPDATE2:强>
实际上在我的所有应用程序中,我都没有指定FB.ui
而没有指定display
,因为在实施Dialogs时iframe
在大多数情况下效果不佳,没有它Facebook JS-SDK试图使用最合适的显示模式...
<强> UPDATE3:强>
OP在隐藏的其他DOM元素中有fb-root
,导致Dialog不可见(正如他在评论中所述)