Javascript 通过api返回列表将选项卡添加到页面,但通过浏览器ping请求将返回true
我正在尝试向页面添加选项卡,facebooks graph api声明应发出具有以下参数的请求:Javascript 通过api返回列表将选项卡添加到页面,但通过浏览器ping请求将返回true,javascript,facebook,facebook-graph-api,tabs,facebook-javascript-sdk,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
/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并添加选项卡
注意:
我有页面访问令牌和页面id,如“创建”小节所述。您能试用以下代码吗:
<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>
“我的添加到页面”对话框页面
添加到页面
init({appId:“您的应用程序ID”,状态:true,cookie:true});
函数addToPage(){
//正在调用API。。。
var obj={
方法:“pagetab”,
重定向\u uri:“重定向\u uri”,
};
FB.ui(obj);
}
响应只是页面上选项卡的列表
这就是对/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
,然后该应用程序作为页面选项卡应用程序安装在页面上。这不是我要找的,这将打开一个对话框并请求用户为他拥有的页面添加选项卡,我想进行一个api调用,该调用将选项卡添加到页面(我有页面访问令牌和页面id),因此我拥有执行此类操作所需的所有权限,请阅读我在回答中的描述。谢谢,看起来facebook需要使用您提到的“post”参数执行此操作。