Facebook发布为页面

时间:2015-06-24 14:03:55

标签: javascript facebook

我知道这个问题已经经常被问到了,但是我一直试图解决这个问题超过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'});
}

1 个答案:

答案 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

...始终使用类型安全比较:)