我们已经创建了一个具有以下权限的应用:
" App Info":现场直播 "状态和评论页面":现场直播
它具有以下权限:
应用详情 - 英语(英国)
电子邮件
manage_pages
public_profile
publish_actions
user_friends
再次全部批准。
那么为什么可能是应用报告错误并返回以下错误:"(#200)权限错误"。
我们无法看到我们生命中可能遗失的东西。这是一个在上个月创建的v2应用程序。
由于
安东尼
答案 0 :(得分:2)
好的 - 我不能声称这是一个同事,但问题是旧的SDK调用了getLoginUrl。此函数具有FB权限作为调用的一部分已更改 - 我们有publish_stream,但现在我们需要publish_actions。感谢您的帮助,我希望有人认为这很有用。
答案 1 :(得分:0)
如果您收到权限错误,则用户尚未授予您的应用程序执行操作的权限。请注意,除了任何v2应用程序的基本配置文件之外,用户可以拒绝任何权限。
您可以使用Facebook调试器测试所有URL,访问令牌或Open Graph Action ID: https://developers.facebook.com/tools/debug
如果您在此输入访问令牌,则可以查看用户授予的权限。您也可以致电/me/permissions
查看用户提供的权限,您可以在此处找到相关文档:
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/permissions
答案 2 :(得分:0)
向PAGES发布时不是USERS。有三件事可能会让你失望......
您需要:开发人员控制台中的pages_show_list,manage_pages,publish_pages权限:https://developers.facebook.com/apps
在执行oauth时需要定义范围:
args = { ' REDIRECT_URI':' http://www.yourdomain.com/facebook/callback/&#39 ;, ' CLIENT_ID':settings.FACEBOOK_ID, '范围':' public_profile,pages_show_list,manage_pages,publish_pages&#39 ;, } 返回HttpResponseRedirect("%s?%s"%(' https://www.facebook.com/dialog/oauth',urllib.urlencode(args)))
您需要使用PAGE ACCESS TOKEN,而不是USER ACCESS TOKEN。要获得PAGE ACCESS TOKEN,您需要致电:
https://graph.facebook.com/me/accounts/?
将返回name,id和access token(这是第1页)。
然后使用PAGE ACCESS TOKEN进行发布:
args = {' access_token':self.facebook_page_token} 如果消息:args [' message'] =消息 if link:args [' link'] = link 如果名称:args [' name'] = name 如果图片:args ['图片'] =图片 如果标题:args ['标题'] =标题 如果地点:args ['地点'] =地方 response = json.loads(urllib.urlopen(" https://graph.facebook.com/%s/feed/"%self.facebook_page_id,urllib.urlencode(args))。read())
这很好。您不需要发布__页面发布。