我们创建了一个具有以下权限的应用程序:
“应用信息”:已上线 “状态和评论页面”:已上线
它具有以下权限:
应用详情 - 英语(英国)
电子邮件
管理页面
public_profile
发布动作
用户朋友
再次全部批准。
那么为什么应用程序报告错误并返回以下错误:“(#200)权限错误”。
我们终其一生都看不到我们可能遗漏的东西。这是上个月创建的 v2 应用程序。
谢谢
安东尼
我们创建了一个具有以下权限的应用程序:
“应用信息”:已上线 “状态和评论页面”:已上线
它具有以下权限:
应用详情 - 英语(英国)
电子邮件
管理页面
public_profile
发布动作
用户朋友
再次全部批准。
那么为什么应用程序报告错误并返回以下错误:“(#200)权限错误”。
我们终其一生都看不到我们可能遗漏的东西。这是上个月创建的 v2 应用程序。
谢谢
安东尼
好的 - 我不能声称这是一位同事的功劳,但问题是旧的 SDK 正在调用 getLoginUrl。作为调用的一部分,此函数具有 FB 权限,但已更改 - 我们有 publish_stream,但现在我们需要 publish_actions。感谢所有帮助,我希望有人觉得这很有用。
如果您收到权限错误,则用户没有授予您的应用程序执行操作的权限。请注意,用户可以拒绝除任何 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
发布到 PAGES 而不是 USERS 时。三件事可能会绊倒你......
您将需要:开发者控制台中的 pages_show_list、manage_pages、publish_pages 权限:https ://developers.facebook.com/apps
执行 oauth 时,您需要将范围定义为:
args = {'redirect_uri':' http ://www.yourdomain.com/facebook/callback/','client_id ':settings.FACEBOOK_ID,'scope':'public_profile,pages_show_list,manage_pages,publish_pages',} return HttpResponseRedirect( "%s?%s" % (' https://www.facebook.com/dialog/oauth ', urllib.urlencode(args)))
您将需要使用页面访问令牌,而不是用户访问令牌。要获得 PAGE ACCESS TOKEN,您需要调用:
https://graph.facebook.com/me/accounts/?
它将返回名称、ID 和访问令牌(这是第一页)。
然后使用 PAGE ACCESS TOKEN 发帖:
args = { 'access_token':self.facebook_page_token } if message: args['message'] = message if link: args['link'] = link if name: args['name'] = name if picture: args['图片'] = 图片如果标题:args['caption'] = 标题如果地方:args['place'] = 地方响应 = json.loads(urllib.urlopen(" https://graph.facebook.com/%s /feed/ " % self.facebook_page_id, urllib.urlencode(args)).read())
去就好了。您不需要 publish_actions 来发布页面。