0

我的网站有 facebook 应用程序,并且 facebook 连接工作正常。我在用户的墙上发布帖子选项,但在墙上发布帖子是作为弹出窗口发生的,并且大多数浏览器都会自动禁用弹出窗口。所以墙贴没有像我想要的那样工作,因为大多数人不启用弹出窗口。是否有任何解决方案可以使此帖子不是弹出窗口。

我用于 fb connect 的代码是

<script>

window.fbAsyncInit = function()
{
    FB.init({
        appId  : '',
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true , // parse XFBML
        oauth : true // Enable oauth authentication
    });

FB.login(function(response)
{
    if (response.authResponse)
    {

        FB.api('/me/feed', 'post',
                {
                    message     : "",
                    link        : '',
                    picture     : "",
                    name        : '',
                   description  : ''

           },
           function(response) {
               showLoader(false);

                if (!response || response.error) {
                    alert('Error occured');
                } else {
                    alert('Post ID: ' + response.id);
                }
            });
    }

}, { scope : 'publish_stream' });
};

</script>

<!-- FACEBOOK -->        
<div id="fb-root"></div>
<script>
(function() {
 var e = document.createElement('script');
// replacing with an older version until FB fixes the cancel-login bug
  e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
  //e.src = 'scripts/all.js';
  e.async = true;
  document.getElementById('fb-root').appendChild(e);
  }());
</script>
<!-- END-OF-FACEBOOK -->
4

1 回答 1

2

打开弹出窗口的不是帖子(FB.api是一种后台方法,它永远不会打开弹出窗口)——而是FB.login调用。

如文档中所述,不应在页面加载时调用此方法,而应在显式用户交互(例如单击登录按钮)时调用此方法。当前浏览器中默认配置的弹出窗口阻止程序不会阻止用户交互时出现的弹出窗口。

如果这对您来说还不够好,那么您可以使用登录对话框的直接 URL 版本,这将引导用户登录 Facebook 并在登录后返回您的页面:https ://developers.facebook.com/docs/howtos/登录/客户端-没有-js-sdk/#step2

于 2013-03-14T14:16:00.637 回答