【问题标题】:Problem displaying the Facebook Request Dialog显示 Facebook 请求对话框时出现问题
【发布时间】:2011-08-19 23:23:42
【问题描述】:

以下代码应该显示一个 Facebook 请求对话框:

<script>
  function sendFBRequest()
  {
      // assume we are already logged in
      FB.init({appId: '111111111111111', xfbml: true, cookie: true});

      FB.ui({
          method: 'apprequest', // this needs to be plural!
          message: 'Help me connect to Jane Doe',
          data: 'game47',
          title: 'Game Request'
          },
          function (response) 
          {
            if (response && response.request_ids) 
            {
                var requests = response.request_ids.join(',');
                alert('requests = ' + requests);
            } 
            else 
            {
                alert('canceled');
            }
          });
 }
 </script>

 <div class="awesome green" onClick="sendFBRequest();">Facebook Request</div>

当我点击(真棒绿色)按钮时,显示基本对话框框架,并开始对话框加载动画(闪烁的垂直灰色条)。但就是这样,不会显示任何消息。我错过了什么?

编辑: 我使用了 'apprequest' 方法而不是 'apprequests'

【问题讨论】:

    标签: facebook


    【解决方案1】:

    这对我有用

    FB.ui(
    {method: 'apprequests',
    message: 'my message',
    data: 'some data',
    title:'Mytitle'},
     function(response) {
     if (response) {
    
       window.location.reload();
     } else {
    
       window.location.reload();
     }
     }
    
     );
    

    【讨论】:

      【解决方案2】:
      FB.init({appId: '111111111111111', xfbml: true, cookie: true});
      

      不假定用户已经登录。

      在页面加载时尝试制作 FB.init。并使用 FB.getSession[1] 或更好地使用 FB.getLoginStatus[2]

      检查 FB api

      [1]http://developers.facebook.com/docs/reference/javascript/FB.getSession/

      [2]http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

      【讨论】:

      • 嗯,如果我改用发送对话框(方法:发送),那么一切都按预期工作(但我没有得到响应信息)。我去看看
      • response.status = '已连接'
      【解决方案3】:

      您是否在浏览器错误控制台中看到任何 javascript 错误? Facebook 实现事物的方式存在一个错误(在我看来)。如果您在页面上有一个 Like 按钮,它会调用一个 FB.init 函数来破坏您的初始化。然后,您会收到一个 JavaScript 错误,即在尝试调用其他 Facebook 函数时未调用 FB.init。

      我发现我必须将 xfbml 标志设置为 false 并使用 FB.XFBML.parse 来呈现具有 FBML 的页面部分。反正哪个效率更高。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 2019-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多