请求对话框代码不执行任何操作

时间:2011-12-03 06:54:50

标签: facebook dialog request

此代码不执行任何操作。我用我的应用程序ID替换了YOUR_APP_ID,将此代码输入到一个新文件中,它不产生任何输出。我错过了什么?

  <div id="fb-root"></div>
  <script src="http://connect.facebook.net/en_US/all.js">
  </script>
  <script>
     FB.init({ 
        appId:'YOUR_APP_ID', cookie:true, 
        status:true, xfbml:true 
     });

     FB.ui({ method: 'apprequests', 
        message: 'Here is a new Requests dialog...'});
  </script>

我从这里来了: https://developers.facebook.com/blog/post/453

更新: 代码适用于画布,但是对于页面选项卡,只需将建议添加到朋友对话框并退出而不发送邀请。

1 个答案:

答案 0 :(得分:4)

可能会发生一些事情:

1)弹出窗口被阻止

要解决此问题,您需要在用户操作上触发请求。否则大多数浏览器会在页面加载时阻止自动弹出窗口。试试这个:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<a href="#" onclick="apprequest()">Do request</a>
<script>
     FB.init({appId:'YOUR_APP_ID', cookie:true,status:true, xfbml:true});
     function apprequest () {
         FB.ui({ method: 'apprequests',
            message: 'Here is a new Requests dialog...'});
     }
</script>

另一个技巧是强制它使用未被浏览器阻止的'iframe'显示方法(而不是弹出窗口):

FB.ui({ method: 'apprequests','display':'iframe',
    message: 'Here is a new Requests dialog...'});

2) FB JS库尚未加载

如果您使用的是asynchronous loading技术,这实际上只是一个问题,您不在此示例中。但如果你是,并且在JavaScript控制台中看到错误“FB未定义”,那么你只需要确保在用户事件(如上面的链接)上有请求弹出触发器,或者在异步回调。

祝你好运!