0

我遇到了画布应用程序的问题。如果启用了 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

任何帮助表示赞赏!

4

2 回答 2

1

使用“iframe”显示方法时,您必须通过有效的 access_token:https ://developers.facebook.com/docs/reference/dialogs/

于 2011-12-14T02:33:57.987 回答
0

只需删除显示:“iframe”,对我有用。它仍会显示在 iframe 中,但不会出现错误。不要问我为什么,使用 1:1 相同的应用程序设置,它适用于我的另一个应用程序中的显示值......

于 2012-10-11T09:42:27.950 回答