简单发布到Facebook页面墙作为authed API用户

时间:2012-10-02 09:15:39

标签: facebook facebook-graph-api

我们正在制作一个数字无线电层,让听众可以向工作室发送信息。这个想法是用户将填写网站上的文本区域,按下按钮,消息将被发布在工作室的Facebook墙上,DJ正在监视它。

这适用于用户墙,但当我尝试发布到页面墙时,我收到此错误:

"(#200) The user has not granted the application the permission to automatically publish feed stories"

我忘记了什么吗?或者这不可能吗?用户是否需要喜欢该页面?或者是否需要将设置更改为页面Admin?

我创建了一个测试页面,我喜欢它并且正在使用我的帐户进行测试。我还选中了“任何人都可以在x页的时间轴上发帖”的复选框。但没有帮助。

以下是简单的代码:

function facebookPost(target,content) {
    FB.api('/'+target+'/feed','post',{
        message:message
    },function(res){
        console.log(res);
    }
}

我一直在使用API​​一段时间了,但这个确实让我头晕目眩。

提前致谢。

编辑:我发现只有在页面管理员在自己的页面上发布时才会出现错误。当我将'manage_pages'添加到perms时,我没有收到错误,但帖子在页面名称中,就像状态更新一样。

所以它适用于其他用户,但前提是他们在发布之前没有“喜欢”该页面,否则页面管理员不会收到新帖子的通知,他无法看到它,只有用户和他的朋友可以。 (这是一个问题,因为DJ必须看到这些帖子)

之前有没有人遇到过这种行为?

1 个答案:

答案 0 :(得分:0)

对于那些以相同错误进入此页面的人,我发现您需要publish_stream而不是publish_actions。

即使Facebook文档说publish_actions取代了publish_stream。当我为publish_actions创建了一个FB.login时,它已经过了,但帖子得到了与帖子的作者相同的错误。

当我请求publish_stream时,它向我提供了一个请求新权限的对话框,在我点击确定后,帖子就可以了。

我使用的代码:

params={message: "Your message on the wall."}

FB.login(function(response) { console.log(response) }, {scope:'publish_stream'})
FB.api('/<The Page ID>/feed', 'post', params, function(response) { console.log(response)  });