Facebook UI,弹出窗口显示发生错误。请稍后再试

时间:2013-04-05 11:54:45

标签: javascript facebook post sdk

好的,我制作了一个代码,它显示出错了。请在弹出窗口出来时再试一次,并在colsole中说:undefined at“function callback(response){     的console.log(响应);   }“

这是代码:

<script>
function postToFeed() {
  // call the API
  var obj = {
    method: 'feed',
    link: 'https://apps.facebook.com/assault_combat/takegift',
    picture: 'https://flyandsmash.herokuapp.com/images/Gift.png',
    name: 'Take a gift from Assault Combat',
    caption: 'https://apps.facebook.com/assault_combat/',
    actions: [
      {'name': 'Get Gift', 'link': 'https://apps.facebook.com/assault_combat/takegift'}
    ],
    description: 'Action links are awesome.'
  };

  function callback(response) {
    console.log(response);
  }

  FB.ui(obj, callback);
}

</script>

和btw,当我输入“FB.init和东西时,它也说错误...(我已经导入了div fb root和stuff)

1 个答案:

答案 0 :(得分:3)

始终使用异步方式加载JavaScript SDK:https://developers.facebook.com/docs/javascript/quickstart

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '{your-app-id}',
      status     : true,
      xfbml      : true
    });

    //earliest possibility to use FB
  };

  (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'));
</script>

关于错误:您在obj中添加的链接都不可访问,可能是主要问题。此外,标题不能和URL,但它应该仍然可以使用,因为Facebook只是删除它。最好尝试使用较少的参数,删除操作并在没有参数的情况下尝试。

我也会在没有嵌套函数的情况下编写它:

<script>
function callback(response) {
  console.log(response);
}

function postToFeed() {
  // call the API
  var obj = {
    method: 'feed',
    link: 'https://apps.facebook.com/assault_combat/takegift',
    picture: 'https://flyandsmash.herokuapp.com/images/Gift.png',
    name: 'Take a gift from Assault Combat',
    caption: 'https://apps.facebook.com/assault_combat/',
    actions: [
      {'name': 'Get Gift', 'link': 'https://apps.facebook.com/assault_combat/takegift'}
    ],
    description: 'Action links are awesome.'
  };

  FB.ui(obj, callback);
}
</script>

确保在初始化SDK之后调用“postToFeed”,并始终关注用户交互/鼠标事件。如果您不在用户事件中使用浏览器,浏览器可能会阻止弹出窗口。