Which Facebook permissions allow for posting to a

2020-01-30 06:36发布

问题:

I am working on a project to post data to the walls of Facebook pages. I have set up a Facebook app and currently requesting the following permissions from user when attempting to post to their page's wall:

  • publish_stream
  • offline_access
  • manage_pages

The code currently posts to a PROFILE's wall successfully, but when trying to post to a PAGE's wall, the following error is returned:

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

Again, I am requesting permissions which apparently are sufficient for posting to a profile's wall, but not to a page's wall. Which permission(s) am I missing for posting to a page's wall? Thank you in advance for any help.

回答1:

here's what you do. First, read the documentation on extended permissions. Notice that 'manage_pages' says:

Enables your application to retrieve access_tokens for pages the user administrates. The access tokens can be queried using the "accounts" connection in the Graph API. This permission is only compatible with the Graph API.

This means you have to switch your user's access token based on the response from the

https://graph.facebook.com/$USERID/accounts?access_token=$USER_ACCESS_TOKEN

for your app. So once you have your PAGE ACCESS TOKEN, switch the request to post your message like such:

https://graph.facebook.com/$PAGEID/feed

in postfields (using curl or some such), include your message and $PAGE_ACCESS_TOKEN



回答2:

In order to POST to a user's wall you can use "publish_stream" permission but the same doesn't go with a Page. In order to POST to a Page's wall we need to first like the Page. (Become a Fan has now been removed by Facebook). The above answer is based on my experience with FBConnect (Facebook SDK for iPhone). In my application I had to use Like Button to let user first Like the Page and later he could POST on PAGE's wall. I was not able to find any specific permission for the same that could directly let user post to Page's wall after login. If you get any clue please let me know as well.