【问题标题】:Facebook permissions error 200Facebook 权限错误 200
【发布时间】:2014-08-01 08:23:38
【问题描述】:

我们创建了一个具有以下权限的应用:

“应用信息”:已上线 “状态和评论页面”:上线

它具有以下权限:

  • 应用详情 - 英语(英国)

  • 电子邮件

  • manage_pages

  • public_profile

  • publish_actions

  • user_friends

再次全部批准。

那么为什么应用程序会报告错误并返回以下错误:“(#200) Permissions error”。

我们一辈子都看不到我们可能会错过什么。这是上个月创建的 v2 应用。

谢谢

安东尼

【问题讨论】:

  • 你能给我们举一个你会得到这个错误的例子吗?
  • 你让我思考(不幸的是仍未解决)。我们最初是向我/照片发布图像+消息,所以我想知道是否需要 user_photos 权限(即使文档没有这么说),但我试过没有,但仍然失败。 $params = array( 'access_token' => $this->facebook->getAccessToken(), 'message' => $message ); $updateID = $this->facebook->api('/me/feed','POST',$params);我希望对更新有所帮助和抱歉 - 一直按返回而不是 shift + return!
  • 如文档所述,仅需要 publish_actions 权限。我只能猜测您的 access_token 没有所需的权限,您可以通过转储您的 access_token 并通过调试工具进行检查:developers.facebook.com/tools/debug
  • 哇!我不知道那个工具。谢谢你。它现在显示:已发布 1406799047(23 小时前)过期从不有效真实来源 Web 范围 public_profile、manage_pages 显示问题所在。然而,今天早上重新添加了这个帐户,并且该应用程序确实具有这些权限!所以前进但缓慢!
  • 所以您使用的access_token没有您在问题中提到的权限,如果您稍后添加了权限,您应该删除您提供的权限并重新询问他们。您可以在设置 > 应用 > 中删除权限

标签: facebook facebook-apps facebook-app-center


【解决方案1】:

好的 - 我不能声称这是一位同事的功劳,但问题是旧的 SDK 正在调用 getLoginUrl。作为调用的一部分,此函数具有 FB 权限,但已更改 - 我们有 publish_stream,但现在我们需要 publish_actions。感谢所有帮助,我希望有人觉得这很有用。

【讨论】:

    【解决方案2】:

    如果您收到权限错误,则表示用户没有授予您的应用程序执行操作的权限。请注意,用户可以拒绝任何 v2 应用程序的基本配置文件以外的任何权限。

    您可以使用 Facebook 调试器测试所有 URL、访问令牌或 Open Graph 操作 ID: https://developers.facebook.com/tools/debug

    如果您在此处输入访问令牌,您可以查看用户授予的权限。您也可以致电/me/permissions 来查看用户授予的权限,您可以在此处找到有关此的文档: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/permissions

    【讨论】:

    • 我现在已经从 Facebook 中删除了该应用程序(首先删除了该应用程序),通过我们的系统重新添加了它,然后检查了令牌,它仍然只是显示个人资料和页面!真的很困惑为什么它不起作用。
    • 您是否在 Facebook 配置中设置了正确的应用 ID 和应用密码?
    • 是的 100% 好吗?是不是很奇怪!
    • 抱歉回复晚了 - 不幸的是相同的设置: - 已安装:已授予 - public_profile:已授予 - manage_pages:已授予
    【解决方案3】:

    当发布到 PAGES 而不是 USERS 时。三件事可能会绊倒你....

    1. 您需要:开发者控制台中的 pages_show_list、manage_pages、publish_pages 权限:https://developers.facebook.com/apps

    2. 在执行 oauth 时,您需要将范围定义为:

      参数 = { 'redirect_uri':'http://www.yourdomain.com/facebook/callback/', 'client_id':settings.FACEBOOK_ID, '范围':'public_profile,pages_show_list,manage_pages,publish_pages', } return HttpResponseRedirect("%s?%s" % ('https://www.facebook.com/dialog/oauth', urllib.urlencode(args)))

    3. 您需要使用页面访问令牌,而不是用户访问令牌。要获得 PAGE ACCESS TOKEN,您需要调用:

    https://graph.facebook.com/me/accounts/?

    这将返回名称、ID 和访问令牌(这是第一页)。

    1. 然后使用 PAGE ACCESS TOKEN 发帖:

      args = { 'access_token':self.facebook_page_token } 如果消息:args['message'] = 消息 如果链接: args['link'] = 链接 如果名称:args['name'] = name 如果图片:args ['图片'] = 图片 如果标题:args['caption'] = 标题 if place: args['place'] = place 响应 = json.loads(urllib.urlopen("https://graph.facebook.com/%s/feed/" % self.facebook_page_id, urllib.urlencode(args)).read())

    那就太好了。您不需要 publish_actions 来发布页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 2017-05-28
      相关资源
      最近更新 更多