0

我正在尝试将 stream.publish 功能添加到我的网络应用程序中,但我遇到了“提要”对话框的问题。

我的代码如下:

        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”,我可以让它工作,但这不是我想要的。

任何想法为什么提要没有出现在我的屏幕上???

谢谢!

4

1 回答 1

1

对话框文档中所述

如果指定iframe,则必须具有有效的access_token. 要获得有效的access_token,请参阅身份验证指南

更新:
似乎还有其他一些可能导致这种行为的陈述:

iframe:在当前页面的灯箱 iframe 中显示对话框。由于存在点击劫持的风险,这仅适用于某些特定对话框,并且需要您通过有效的access_token.

和这个。

在 Facebook 画布页面上,仅 iframe 应用程序支持对话框

还有一个开放的BUG #246637628719849关于“发送对话框”不能像iframe在页面选项卡中一样使用(可能相关,也可能不相关)。

Update2:
实际上,在我所有的应用程序中,我都FB.ui没有指定用户,display因为在大多数情况下,Dialogs 的实现iframe都不能正常工作,没有它 Facebook JS-SDK 试图使用最合适的显示模式......

Update3:
OPfb-root在其他隐藏的 DOM 元素中,导致 Dialog 不可见(如他在评论中所述)

于 2012-01-18T15:38:20.220 回答