2012-01-18 79 views
0

我正在尝试将stream.publish功能添加到我的网络应用程序,但我遇到了“feed”对话框的问题。FB.ui对话框(iframe)不可见

我的代码如下:

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

任何想法为什么饲料只是没有出现在我的屏幕?

谢谢!

+0

你在哪里使用此码?画布应用程序,网站,页面选项卡? – 2012-01-18 15:56:50

回答

1

,如果你指定iframeDialogs documentation

描述的,你必须有一个有效的access_token。为了得到一个有效的access_token,请参阅Authentication guide

更新:
似乎还有一些其他的语句,可能会导致此行为:

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

而这一个。

在Facebook上的画布页,对话框只支持iframe的应用

也有开放BUG #246637628719849约“发送对话”不是工作在页面选项卡iframe(这可能是也可能不是有关)。

UPDATE2:
其实在我所有的应用程序我有用户FB.ui没有在执行对话框iframe的时间指定display因为在大多数情况下是行不通的好,没有它的Facebook JS-SDK努力使用最合适的显示模式...

UPDATE3:
OP这是隐藏在其他的DOM元素中有fb-root,导致对话是无形的(因为他在评论说)

+0

我有一个有效的access_token,如果我也将它添加到obj对象中没有任何反应。任何其他想法? – 2012-01-18 15:44:45

+0

其实我有另一个div中的fb-root div显示:没有添加,所以iframe被隐藏在它后面:$ – 2012-01-18 16:16:56

+0

@AlbertoSheinfeld,我已经更新了我的答案和评论中的信息。不接受它,我们只是把它作为提醒... – 2012-01-18 16:34:12