Put the codes inside the callback function of fbAsyncInit process
<div id="fb-root">
</div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID',
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html',
      status     : true,
      cookie     : true,
      oauth      : true,
      xfbml      : true
    });
    // Put Your Codes Here
  };
  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));
</script>
Add delay to your SDK call
/**
 * do something when user leaves a new comment
 */
function fb_event_subscribe() {
    try {
        FB.Event.subscribe('comment.create', function(response) {
            // do something here
        });
    }
    catch(err) {
        setTimeout("fb_event_subscribe()",1000); // try again later
    }
};
/**
 * subscribe the Facebook event "comment.create" after a one second delay, which
 * makes sure FB JavaScript SDK asynchronous initialization FB.init() is finished.
 */
setTimeout("fb_event_subscribe()",1000);
 
The code you have provided has been really helpful in my work. It made the process easy and simple to access. Thanks for sharing this informative and helpful post.
ReplyDelete