Post facebook 页面作为管理员(也有页面 access_token)
Post facebook page as admin (also have page access_token)
一开始对post老post感到抱歉,但不知道为什么没弄对
我 post 以管理员身份新加入 facebook 粉丝页面。我之前搜索过很多线程,并在他们发表评论时进行了修复。
- 我对 post 页面有正确的权限。
- 我有第 PAGE access_token 页。
- 我试过很多次注销。
- 我已经尝试 post 作为页面管理员手动输入页面(成功)。
但我仍然post作为页面的访客而不是管理员。
这些是我的职能:
var page_id = [
'88290XXXXXX39694', //fan page 1
'17537XXXXXX02244', //fan page 2
];
var permission = 'publish_actions, publish_pages, manage_pages, user_events, publish_stream';
function postFB(id, title, desc) {
var title = title;
var desc = desc;
var body = title+"/n"+desc;
var video_link = 'https://youtu.be/'+id+'';
for(var i = 0; i<= page_id.length; i++ )
{
var accessToken = "";
FB.api('/'+page_id[i]+'?fields=access_token', function(response) {
accessToken = response.access_token;
});
FB.api('/'+page_id[i]+'/feed', 'post', {
message: body,
link: video_link,
access_token: accessToken
}, function(response) {
if (!response || response.error) {
console.log(response);
} else {
alert('Post ID: ' + response.id);
}
});
}
};
function publish(id, title, decs)
{
FB.login(function(response) {
if (response.authResponse) {
//Log auth permissions (in the response)
console.log(response);
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
// document.getElementById('status').innerHTML =
// 'Thanks for logging in, ' + response.name + '!';
});
postFB(id, title, decs);
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {
scope: permission,
return_scopes: true
});
};
对我的问题有什么建议吗?
FB.api
是异步的,需要等待回调:
FB.api('/' + page_id[i] + '?fields=id,access_token', (response) => {
FB.api('/' + response.id + '/feed', 'post', {
message: body,
link: video_link,
access_token: response.access_token
}, (response) => {
if (!response || response.error) {
console.log(response);
} else {
console.log('Post ID: ' + response.id);
}
});
});
您需要的唯一权限是 manage_pages
和 publish_pages
。我也用过箭头函数(因为这里有ES6)
循环还有另一个大问题,您在 API 调用中使用了 "i" 变量 - 因为回调是异步的,所以当它实际命中回调函数。无论如何,你不应该在循环中大量使用 post,确保它适用于一页。
一开始对post老post感到抱歉,但不知道为什么没弄对
我 post 以管理员身份新加入 facebook 粉丝页面。我之前搜索过很多线程,并在他们发表评论时进行了修复。
- 我对 post 页面有正确的权限。
- 我有第 PAGE access_token 页。
- 我试过很多次注销。
- 我已经尝试 post 作为页面管理员手动输入页面(成功)。
但我仍然post作为页面的访客而不是管理员。
这些是我的职能:
var page_id = [
'88290XXXXXX39694', //fan page 1
'17537XXXXXX02244', //fan page 2
];
var permission = 'publish_actions, publish_pages, manage_pages, user_events, publish_stream';
function postFB(id, title, desc) {
var title = title;
var desc = desc;
var body = title+"/n"+desc;
var video_link = 'https://youtu.be/'+id+'';
for(var i = 0; i<= page_id.length; i++ )
{
var accessToken = "";
FB.api('/'+page_id[i]+'?fields=access_token', function(response) {
accessToken = response.access_token;
});
FB.api('/'+page_id[i]+'/feed', 'post', {
message: body,
link: video_link,
access_token: accessToken
}, function(response) {
if (!response || response.error) {
console.log(response);
} else {
alert('Post ID: ' + response.id);
}
});
}
};
function publish(id, title, decs)
{
FB.login(function(response) {
if (response.authResponse) {
//Log auth permissions (in the response)
console.log(response);
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
// document.getElementById('status').innerHTML =
// 'Thanks for logging in, ' + response.name + '!';
});
postFB(id, title, decs);
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {
scope: permission,
return_scopes: true
});
};
对我的问题有什么建议吗?
FB.api
是异步的,需要等待回调:
FB.api('/' + page_id[i] + '?fields=id,access_token', (response) => {
FB.api('/' + response.id + '/feed', 'post', {
message: body,
link: video_link,
access_token: response.access_token
}, (response) => {
if (!response || response.error) {
console.log(response);
} else {
console.log('Post ID: ' + response.id);
}
});
});
您需要的唯一权限是 manage_pages
和 publish_pages
。我也用过箭头函数(因为这里有ES6)
循环还有另一个大问题,您在 API 调用中使用了 "i" 变量 - 因为回调是异步的,所以当它实际命中回调函数。无论如何,你不应该在循环中大量使用 post,确保它适用于一页。