Facebook FB.ui对话框(iframe)不可见
我正在尝试将stream.publish功能添加到我的web应用程序中,但“提要”对话框有问题 我的代码如下:Facebook FB.ui对话框(iframe)不可见,facebook,dialog,fb.ui,Facebook,Dialog,Fb.ui,我正在尝试将stream.publish功能添加到我的web应用程序中,但“提要”对话框有问题 我的代码如下: var obj = { method: 'feed', display: 'iframe', name: data.name, link: data.link, picture: data.picture, caption: d
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");
});
我可以让它工作,如果我使用'弹出'而不是'iframe',但这不是我想要的
你知道为什么feed没有出现在我的屏幕上吗
谢谢 如中所述
如果指定iframe
,则必须具有有效的access\u令牌。要获取有效的访问\u令牌
,请参阅
更新:
似乎还有其他两种说法可能导致这种行为:
iframe
:在当前页面上的lightbox iframe中显示对话框。由于存在点击劫持的风险,这只允许在某些对话框中使用,并且需要您传递有效的access\u令牌
还有这个
在Facebook画布页面上,对话框仅支持iframe应用程序
页面选项卡中也有关于“发送对话框”不使用asiframe
的打开信息(可能相关,也可能无关)
更新2:
实际上,在我所有的应用程序中,我都使用了用户FB.ui
,但没有指定display
,因为在对话框iframe
实现时,大多数情况下都无法正常工作,没有它,Facebook JS-SDK试图使用最合适的显示模式
更新3:
OP在另一个DOM元素中隐藏了fb root
,导致对话框不可见(如他在评论中所述)我有一个有效的访问令牌,如果我也将它添加到obj对象中,则不会发生任何事情。还有其他想法吗?事实上,我在另一个div中添加了fb root div,显示:none,因此iframe隐藏在它后面:$@AlbertoSheinfeld,我已经用您评论中的信息更新了我的答案。不要接受它,我们只是把它作为一个提醒…你好。你认为你能评论一下吗?如何设置父级--是否总是fb根?我需要获取访问令牌吗?如果我这样做,更多的问题是:你在哪里使用这个代码?画布应用程序、站点、页面选项卡?