无法使用 JS Post 到 Facebook 页面

Can't Post to Facebook Page using JS

好吧,我想要的是 post 作为页面访问 Facebook 页面(这是开发模式应用程序,只有 ne 可以查看)。 我已完成 Facebook 登录。

所以基本上我要求 2 permissions 他们是

  1. 管理页面
  2. 发布页面

我可以 post 使用 Facebook graph explorer tool 访问该页面,但不能通过我的 Javascript 代码。

下面是我用JS写的代码。这段代码写在一个函数里面。

FB.api('me/accounts', function(response){
      token = response.data[0].access_token;
      post_with_token(token);
}); 

function post_with_token(token){
  var message = $('#post_body').html();
  var page_id = 'page_id';

  FB.api('page_id/feed', 'post',
      { message : message,
        access_token : token}, 
      function (response){
        console.log(response);
        });

控制台中的错误对象是这样说的

message: "(#200) The user hasn't authorized the application to perform this action"

My 和 Graph 资源管理器这两个应用程序具有相同的权限 granted.Is 需要询问任何新权限。我无法弄清楚到底是什么问题 is.Correct 如果我哪里错了。

我得到了我在下面 post 编辑的答案,但不明白为什么我需要额外的许可。?

错误的含义与它所说的完全一致。他们设计了他们的 API,所以它不会让你 post 在没有适当授权的情况下先行。

Facebook provides a guide on how to give proper authorization to your registered app

好的,我解决了问题。我还必须请求 publish_actions 许可。所以我通过登录对话框询问并使用与上面相同的代码 post 到页面!

publish_pages 仅在 Graph API 2.3 版中引入。

在此之前,publish_actions 也被用于允许在页面上发帖 - 现在使用 v2.3,他们将其分为两个单独的权限。 publish_actions 用于您发布的所有内容 as/in 用户名,publish_pages 用于作为页面发布。

Graph API Explorer 默认选择 API 版本 2.3 – 这就是为什么你的调用在那里成功的原因。最有可能的是,通过您自己的 JS 代码 API 调用,您没有使用 v2.3,而是在初始化 JS SDK 时指定了较低的 API 版本。

所以只需在 FB.init 参数中指定 version: 'v2.3'(参见 JS SDK 文档中的 Basic Setup 部分),它应该可以与 publish_pages.[=18 一起正常工作=]