Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook graph api 为什么在facebook页面上发帖会产生“;用户没有';t授权该申请”;_Facebook Graph Api - Fatal编程技术网

Facebook graph api 为什么在facebook页面上发帖会产生“;用户没有';t授权该申请”;

Facebook graph api 为什么在facebook页面上发帖会产生“;用户没有';t授权该申请”;,facebook-graph-api,Facebook Graph Api,我已经阅读了fb文档并编写了将消息发布到facebook“页面”的代码,但是我收到了一个我不希望看到的错误: (#200) The user hasn't authorized the application to perform this action 以下是我所做的: 我设置了一个facebook应用程序,它提供我的应用程序ID和 APP\u SECRET 我设置了一个测试facebook“页面”。让我们将其fb id称为PAGE\u id 使用OAuth为用户获取范围为“发布操作,管理

我已经阅读了fb文档并编写了将消息发布到facebook“页面”的代码,但是我收到了一个我不希望看到的错误:

(#200) The user hasn't authorized the application to perform this action
以下是我所做的:

  • 我设置了一个facebook应用程序,它提供我的
    应用程序ID
    APP\u SECRET
  • 我设置了一个测试facebook“页面”。让我们将其fb id称为
    PAGE\u id
  • 使用OAuth为用户获取范围为“发布操作,管理页面”的用户访问令牌。我接受了我的应用程序在重定向到facebook身份验证页面时请求的权限
  • 我上了
    https://graph.facebook.com/me/accounts
    使用
    USER\u ACCESS\u TOKEN
    ,我会得到一个我管理的页面列表,包括我想发布到的页面
“我的页面”的此数据块如下所示:

{
  "data": [
    {
      "category": "Community", 
      "name": "My Generic Test Page", 
      "access_token": PAGE_ACCESS_TOKEN, 
      "id": PAGE_ID, 
      "perms": [
        "ADMINISTER", 
        "EDIT_PROFILE", 
        "CREATE_CONTENT", 
        "MODERATE_CONTENT", 
        "CREATE_ADS", 
        "BASIC_ADMIN"
      ]
    }, 
    ....
  ]
}
然后我使用
PAGE\u ACCESS\u令牌
向页面发布消息:

  • 我在
    https://graph.facebook.com/PAGE_ID/feed
    字段
    消息
    等于
    这是一个测试帖子。
Facebook返回:

{
  "error": {
    "message": "(#200) The user hasn't authorized the application to perform this action", 
    "type": "OAuthException", 
    "code": 200
  }
}
使用,我可以确认我的
页面访问\u令牌
有效,并且具有作用域:
管理页面
发布操作


我在哪里错过了授权申请?我需要额外的作用域吗?我是否错过了在facebook授权屏幕上单击某些内容?我缺少的应用程序上是否有设置?经过几天的调试,我一定对这个问题视而不见了-|

嗯,这似乎是我们大多数人在社交网络中尝试活动时犯的一个常见错误。在尝试执行打开图形操作之前,您需要在初始授权请求中设置权限。默认情况下,您只能以“只读”方式访问其基本信息。 Facebook和LinkedIn API必须在授权时设置许可证


请参阅此处的
public\u actions
部分,对授权代码进行相关更改,并解决您的问题。

您应该添加名为status\u update的权限

我可以用我刚刚得到的访问令牌发布到我喜欢的页面:

例如,如果您想以页面管理员的身份发布,您需要同时拥有管理页面和状态更新权限


欢呼声

状态更新
不再使用。要在页面上发布,我必须同时使用
manage_pages
publish_pages
我发现获取有效令牌和检查权限的最佳方法是通过,但尽管Facebook的文档非常丰富,但并不总是最容易遵循

在资源管理器中,您必须同时查看以下两个方面:

  • 该应用程序目前处于顶端,非常微妙,我错过了很久
  • 获取令牌下拉列表单击可获取令牌的内容,当您单击箭头时,您可以选择页面和您有权访问的其他项目,以便为其选择令牌

  • 在第三步中,我成功地请求(并被授予)了“发布操作”和“管理页面”的权限。将消息发布到facebook页面还需要哪些其他权限?我会使用任何语言的工作代码示例。我碰巧在使用java(使用Scribe和RestFB)。我还对这个问题进行了充分的提炼,只需使用GraphExplorer戳破原始HTTP API就可以重现它。因此,这是一个获得正确权限的问题,我在最初的请求中设置了权限。我会再次询问:除了“发布操作”和“管理页面”之外,还需要哪些权限?如果您已经设置了权限,则会出现此错误,因为您没有正确地将请求切换到post,请参见“是”!“状态更新”是我丢失的权限。非常感谢。现在,为什么我在所有关于权限的facebook文档中找不到任何关于“状态更新”的提及@broc.seib如果您访问,请单击“获取访问令牌”按钮,然后您可以在“扩展权限”选项卡下找到“状态更新”。官方文档并不总是完整和最新的。@i您现在需要2.3版的“发布页面”权限。向下投票,因为这个答案不是我在Facebook Graph API 4中看到的选项。x@AndrewSmiley你是在开玩笑要投否决票吗?当我发布答案时,Graph API的版本只有v1.0。你认为答案对Graph API v100仍然有效吗?你能分享你的代码吗?我得到了完全相同的错误?或者你能看看这个问题吗