通过api返回列表向页面添加选项卡,但通过浏览器ping请求返回true

时间:2013-03-07 11:15:01

标签: javascript facebook facebook-graph-api tabs facebook-javascript-sdk

我正在尝试向页面添加选项卡,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) {

});

响应只是页面上的标签列表,但是当我去brwoser并输入相同的内容时:

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

相同的请求只能手动返回true并添加一个标签。

注意: 我有 here 指示的页面访问令牌和页面ID,子节“创建”。

2 个答案:

答案 0 :(得分:1)

  

响应只是页面上的标签列表

这就是你对/pageid/tabs的GET请求所获得的。

因此,这表示您的参数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,然后该应用程序将作为页面标签应用程序安装在页面上。

答案 1 :(得分: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>