我知道这个问题已经经常被问到了,但是我一直试图解决这个问题超过6个小时,我可以使用一些帮助。错误消息:没有足够的权限代表观众发布到目标。
我正试图以页面形式发布,我的代码到目前为止:
var pageID = "myPage";
FB.init({
appId: "myId",
secret: "mySecret",
status: true,
cookie: true,
});
function postToFeed() {
FB.login(function(response) {
FB.api('/me/accounts', function(response) {
var accessToken = "";
var data = response.data;
for (var i=0; i<data.length; i++) {
if (data[i].id == pageID) {
accessToken = data[i].access_token;
}
}
if (accessToken == "") {
alert("You are not allowed to post.");
}
else {
console.log(accessToken);
FB.api('/' + pageID + '/feed', 'post', {
message : "test",
link : 'Link',
picture : 'Imageurl',
name : 'test',
to : pageID,
from : pageID,
description : 'test'
}, function(response) {
if (!response || response.error) {
alert(JSON.stringify(response.error));
} else {
alert('Post ID: ' + response.id);
}
});
}
});
}, {scope: 'publish_actions,manage_pages,public_profile'});
}
当我通过控制台回显我的accessToken并复制此代码中的accessToken时,它完美无缺。但这不是解决方案,因为我希望它是动态的:
function postToFeed() {
FB.login(function(response) {
FB.api('/' + pageID + '/feed', 'post', {
access_token: 'theAcccessToken',
message: "I'm a Page!",
}, function(response) {
console.log(response);
}
);
}, {scope: 'publish_actions,manage_pages,public_profile'});
}
答案 0 :(得分:0)
这不起作用? (不知道你想用“to”和“from”参数做什么,所以我把它们删除了)
(?:...)
最重要的事情:您需要FB.api('/' + pageID + '/feed', 'post', {
message : 'test',
link : 'Link',
picture : 'Imageurl',
name : 'test',
description : 'test',
access_token: accessToken
}
发布“作为网页”,而不是publish_pages
。
Btw,一个小优化:
publish_actions
...始终使用类型安全比较:)