我正在尝试向页面添加选项卡,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,子节“创建”。
答案 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>