0

我正在尝试向页面添加选项卡,facebooks graph api 声明应发出具有以下参数的请求:

/PAGE_ID/tabs?app_id=MY_APP_ID&method=post&access_token=PAGE_ACCESS_TOKEN

当我将它与 FB.api 一起使用时:

FB.api("/PAGE_ID/tabs?app_id=MY_APP_ID&method=post&access_token=PAGE_ACCESS_TOKEN", function(response) {

});

响应只是页面上的选项卡列表,但是当我转到浏览器并输入相同的内容时:

https://graph.facebook.com/PAGE_ID/tabs?app_id=MY_APP_ID&method=post&access_token=PAGE_ACCESS_TOKEN

相同的请求仅手动返回 true 并添加一个选项卡。

注意: 我有页面访问令牌和页面 ID,如此处的说明 “创建”小节。

4

2 回答 2

1

响应只是页面上的选项卡列表

这就是你得到的 GET 请求/pageid/tabs

所以这表明你的参数method=post没有被正确识别,因此没有 POST 而是发出了一个 GET 请求……你得到了页面的选项卡列表。

改用它,然后它应该可以工作:

FB.api("/PAGE_ID/tabs?app_id=MY_APP_ID&access_token=PAGE_ACCESS_TOKEN",
  "post",
  function(response) { console.log(response); }
);

在这里通过第二个参数告诉 FB.api 要使用什么方法,只需将方法名称作为字符串传递,"post".

刚刚使用我的页面和应用程序对此进行了测试——它只是true按预期在控制台中返回,然后该应用程序作为页面标签应用程序安装在页面上。

于 2013-03-11T16:26:48.617 回答
0

你可以试试这个代码:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="https://www.facebook.com/2008/fbml">
  <head>
    <title>My Add to Page Dialog Page</title>
  </head>
  <body>
    <div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js'></script>
<p><a onclick='addToPage(); return false;'>Add to Page</a></p>
<p id='msg'></p>

<script> 
  FB.init({appId: "YOUR_APP_ID", status: true, cookie: true});

  function addToPage() {

    // calling the API ...
    var obj = {
      method: 'pagetab',
      redirect_uri: 'REDIRECT_URI',
    };

    FB.ui(obj);
  }

    </script>
  </body>
</html>
于 2013-03-10T14:01:42.883 回答