0
window.fbAsyncInit = function(){
FB.init({
    appID       : 'my app id is here',
    channelUrl  : '//myappname.herokuapp.com/channel.php',
    status      : true,
    cookie      : true,
    xfbml       : true,
    frictionlessRequests: true
});

// Additional auth


};


 (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/en_US/all.js";
 fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));

好的,那是我的 scripts.js 文件,我已经将 fb-root 包含到我的页面正文中,由于某种原因,在加载页面时,它的日志记录:

在调用 FB.init() 之前调用 FB.getLoginStatus()。

两次,在对 all.js 第 52 行的调用中,有什么想法吗?

4

1 回答 1

0

这就是我的做法:

window.fbAsyncInit = function () {
    if (FB.init) return;
    // init the FB JS SDK
    FB.init({
        appId: 'your app ID', // App ID from the App
        //channelUrl: '//' + window.location.hostname + '/channel.html',
        //This to get the user details back from Facebook
        //scope: 'id,name,gender,user_birthday,email', etc
        status: true, // check the login status upon init?
        cookie: true, // set sessions cookies to allow your server to access the session?
        xfbml: true  // parse XFBML tags on this page?
    });
}

在 HTML 正文的末尾...

<script>
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
        fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
</script>

...或者您可能会使用 fb 嵌入 iframe
Facebook Like Button Reference

于 2013-04-17T05:04:43.817 回答