使用Like Button和FB.ui(apprequests)在同一页上的冲突

时间:2011-11-13 06:24:58

标签: facebook-like facebook-javascript-sdk apprequests fb.ui

我遇到了一个画布应用程序的问题。如果启用了Like按钮的代码,则FB.ui调用'apprequests'会出错。如果我注释掉Like按钮,它会恢复正常。使用'stream.publish'进行的通话工作正常。

我的初始代码:

FB.init({
  appId  : '12345',
  status : true,
  cookie : true,
  xfbml  : true,
  channelUrl : '/channel.html',
  oauth  : true
});

使用FB工具生成的Like按钮的代码:

<div style="padding-left:177px">
<div id="fb-root"></div>
<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.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=12345";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-like" data-href="http://www.facebook.com/apps/application.php?id=12345" data-send="false" data-width="450" data-show-faces="false" data-colorscheme="dark"></div>
</div>

FB.ui致电:

FB.ui(
  {
    method: "apprequests",
    display: "iframe",
    message: "You have to check this out!"
  },
  function(response) {
    if (response && response.request_ids) {
      $.post("response.php", { rid: response.request_ids, data: data }, function(result) {
      });
    }
  }
);

调用FB.ui时用户获取错误:

API Error Code: 102
API Error Description: Session key invalid or no longer valid
Error Message: Iframe dialogs must be called with a session key

感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

在使用'iframe'显示方法时,您必须传递有效的access_token:https://developers.facebook.com/docs/reference/dialogs/

答案 1 :(得分:0)

删除display:“iframe”,为我工作。它仍将显示在iframe中,但没有错误。不要问我为什么,用1:1相同的应用程序设置它与我的另一个应用程序中的显示值一起工作...