简体   繁体   中英

Facebook permissions error 200

We've created an app which has the following permissions:

"App Info": is live "Status and review page": is live

It has the following permissions:

  • App Details - English (UK)

  • email

  • manage_pages

  • public_profile

  • publish_actions

  • user_friends

Again all approved.

So why could it possibly be that the app reports errors and returns the following error: "(#200) Permissions error".

We cannot see for the life of us what we could possibly be missing. This is a v2 app which has been created in the last month.

Thanks

Antony

Ok - I cannot claim credit for this one it was a colleague but the issue was that the old SDK was calling getLoginUrl. This function has the FB permissions as part of the call which have changed - we had publish_stream, but now we need publish_actions. Thanks for all help and I hope someone finds this useful.

If you get permissions errors, the user has not given your application permissions to do an action. Do note that users can reject any permission except for basic profile for any v2 application.

You can test all URLs, Access Tokens, or Open Graph Action IDs with the Facebook Debugger: https://developers.facebook.com/tools/debug

If you input your access token here you can see what permissions are given by a user. You can also call /me/permissions to see what permissions are given by a user, you can find the documentation about this here: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/permissions

When publishing to PAGES not USERS. Three things that may trip you up....

  1. You will need: pages_show_list, manage_pages, publish_pages permissions in the developers console: https://developers.facebook.com/apps

  2. You will need to define the scope when doing oauth as:

    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)))

  3. You will need to use the PAGE ACCESS TOKEN, not the USER ACCESS TOKEN. To get the PAGE ACCESS TOKEN, you will need to call:

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

Which will return name, id, and access token ( this is the page one ).

  1. Then do the post using the 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['picture'] = picture if caption: args['caption'] = caption if place: args['place'] = place response = json.loads(urllib.urlopen(" https://graph.facebook.com/%s/feed/ " % self.facebook_page_id, urllib.urlencode(args)).read())

That's it good to go. You DO NOT NEED publish_actions for page posting.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM