Facebook API请求对话框不适用于Safari

时间:2013-12-27 18:34:58

标签: javascript html safari facebook-javascript-sdk

我有以下代码记录用户并显示“选择要求的朋友”对话框(“apprequests”):

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
    <title>Test</title>

    <script type="text/javascript">
    function facebook(){        
        FB.login(function(response) {
            if (response.authResponse) {
                var access_token = FB.getAuthResponse()['accessToken'];
                FB.ui({
                    method: 'apprequests',
                    message: 'Sample Title', 
                    max_recipients:1
                }, function(response){          
                    console.log('OK');
                });
            }
        }, {scope: 'publish_stream'});
    }
    </script>

    </head>

    <body>
    <p><a href="javascript:facebook();">Test</a></p>
    <div id="fb-root"></div>

    <script type="text/javascript">
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/es_LA/all.js#xfbml=0&appId=XXXXXXXXXXXXXX";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    </script>

    </body>
    </html>

该代码适用于所有主流浏览器(Firefox,Chrome,Opera,IE11,适用于IOS的Safari,Android浏览器)。 Safari(适用于Mac / PC)是例外:它打开“apprequests”对话框,但对话框显示为空。如果您更改下拉选项(再次“邀请朋友”,然后再更改为“所有朋友”),最终会显示好友列表。

知道如何修复此错误吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

据报道Facebook-API的错误。正如mark wiltse所述:

  

我们设法重现了这个问题,它似乎是一个有效的错误。我们将此分配给相应的团队。

没有必要单独处理safari。你只需要保持这个任务,直到facebook开发人员解决了这个bug。