15

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

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

这是我所做的:

  • 我设置了一个 facebook 应用程序,它提供了我的APP_IDAPP_SECRET.
  • 我建立了一个测试facebook“页面”。让我们将其 fb id 称为PAGE_ID.
  • 使用 OAuth 为用户获取USER_ACCESS_TOKEN范围为“publish_actions,manage_pages”。当重定向到 facebook auth 页面时,我接受了我的应用程序请求的权限。
  • 我使用 GET 进行了一次 GET https://graph.facebook.com/me/accountsUSER_ACCESS_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_ACCESS_TOKEN向页面发布消息:

  • 我做了一个 POSThttps://graph.facebook.com/PAGE_ID/feed的字段message等于This is a test post.

脸书返回:

{
  "error": {
    "message": "(#200) The user hasn't authorized the application to perform this action", 
    "type": "OAuthException", 
    "code": 200
  }
}

使用令牌调试器,我可以确认 myPAGE_ACCESS_TOKEN是有效的,并且具有范围:manage_pagespublish_actions.

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

4

4 回答 4

3

好吧,这似乎是我们大多数人在尝试在社交网络中进行活动时常犯的错误。在尝试创建开放图形操作之前,您需要在初始授权请求中设置权限。默认情况下,您只能“只读”访问他们的基本信息。在认证时设置许可对于 Facebook 和 LinkedIn API 来说是必须的。

在此处查看Facebook 开放图权限public_actions部分并在授权代码中进行相关更改,并解决您的问题。

于 2013-04-06T02:48:33.147 回答
3

status_update不再使用。要在页面上发布,我必须同时使用manage_pagespublish_pages

于 2017-01-24T03:15:57.800 回答
1

我发现获取有效令牌和检查权限的最佳方法是通过Graph API Explorer,但 Facebook 的文档很广泛,但并不总是最容易遵循。

在资源管理器中,您必须同时查看:

  1. 该应用程序目前位于顶部并且非常微妙,我已经错过了很多年。
  2. Get Token Dropdown单击什么来获取令牌,当您单击箭头时,您可以选择您有权访问的页面和其他项目来选择令牌。
于 2017-06-30T04:19:31.743 回答