Facebook API 2.3's new publish_pages permission - do I need it? - facebook

I'm quite confused about Facebook's new publish_pages permission.
My Facebook app allows our CMS users to post to their Facebook pages via our CMS, posing as the page.
We have been granted (via the login review process) the manage_pages and publish_actions permissions.
The API change log states this:
publish_pages Permission - This new permission is required to publish as a Page. Previously publish_actions was required. People who granted manage_pages and publish_actions before v2.3 have automatically been granted publish_pages. If anyone logs in via v2.3, you'll need to request publish_pages explicitly in addition to manage_pages.
We have not been granted the publish_pages permission automatically.
The blog post here states:
For Page developers, we've added the ability to deliver more content on a Page via real-time updates (RTUs). A new Login permission, publish_pages , is now required for apps to publish on behalf of Pages; previously, this required publish_actions.
So it sounds to me like if we upgrade to use API 2.3, our service will no longer work, because we haven't been granted publish_pages.
The documentation states this:
A user access token with publish_actions permission can be used to publish new posts on behalf of that person. Posts will appear in the voice of the user.
A page access token with publish_pages permission can be used to publish new posts on behalf of that page. Posts will appear in the voice of the page.
We do want to post in the voice of the page, as we do currently.
Therefore I opened a new login review request and summarised all of the above, quoting their changelog. Facebook's response was this:
You don't need the publish_pages permission because you already have the publish_actions and manage_pages permissions granted. Publish_pages is a new feature that allows an app to publish to a managed Facebook fan page, but your previously granted permissions contain this functionality already.
Is it just me, or does that response conflict with everything else they've written?
So my question is simply, do we need this new permission going forward or not, and have they wrongly not automatically granted it to us?

Well apparently Facebook's supports response is in some manner wrong.
If you want to post on Page on behalf of the user manage_pages and publish_actions publish permissions are passable for post action.
If you want to post on behalf of the page you also need publish_pages permission, without this all v2.3 api calls will return OAuth Error. There might be other privileges for managing your pages under this permission i don't know

Related

Are Facebook App publish_pages permissions required for my personal API access?

I am trying to automate posting to my Facebook Business page. FB is forcing me to get an app review to approve the manage_pages and publish_pages permissions. I am not making an app for any other users, it is just for me.
Is there a way to avoid app review since I am not creating a public app?
When I try to use my user token (I am a page admin) in the API call it gives me the permission not available error. I can publish using the page token in Dev mode, (which makes all the posts hidden).
Sorry, this isn't a specific code question, If there is a better place to post this I will move it.
When I use my user token:
(#200) The permission(s) publish_actions are not available. It has been deprecated. If you want to provide a way for your app users to share content to Facebook, we encourage you to use our Sharing products instead.
When I use my page token:
(#200) The permission(s) manage_pages,publish_pages are not available. It could because either they are deprecated or need to be approved by App Review.

Permission to get events from Facebook Page

I am attempting to get events from a specific page, through a person who is administrator of the site and the host of the events. This will not work unless i make the administrator a tester on my Facebook App. Anyone who knows which permission i am missing?
I have the following permissions already:
business_management
manage_pages
public_profile
publish_pages
user_friends
EDIT
Facebook API Explorer
Facebook API Explorer
Access Token Info
https://developers.facebook.com/docs/graph-api/reference/page/events:
This is a restricted edge. You cannot request access at this time.
Facebook has restricted this to specific partners; as a normal 3rd-party app developer you can not get page events at this time.

Error on posting on behalf of a Facebook page

I have an app that programmatically make post on a configured Facebook Page.
My app obviously have both the manage_pages and publish_pages permissions approved and I'm using pages access token
Everything work well since now, but recently when I POST on page feed
https://graph.facebook.com/v3.1/234002440799692/feed
I get this error:
{"error": {
"message":"(#200) Requires either publish_to_groups permission and app being installed in the group, or manage_pages and publish_pages as an admin with sufficient administrative permission",
"type":"OAuthException",
"code":200,
"fbtrace_id":"HEVcI\/Tq3fW"
}}
I know that Facebook has deprecated publish_actions scope, so that it's not possible anymore to post programmatically on the personal feed, but I can't find out why the post on a page return this kind of error.
Some further infos:
posting with a developer account actually work
the user by which the page access token is obtained, created the page on Facebook (so I think it's an admin for the page)
i recently migrated from graph_api v2.12 to v.3.1
Any suggestion will be appreciated
Thanks
I figured it out what the problem with some pages is.
It seem that now, if the user grant the manage_pages and publish_pages permission, that will be valid only for already existing pages!
New pages haven't the permission granted by default.
The only way I can fix the problem was to remove my app from the user profile (Facebook Settings > Business Integrations > Select the app > Remove) and then prompt the user again with the Facebook OAuth permission dialog.
I don't know if there is a way to force the app removal programmatically, but I can't find out.
You can use the following URL:
https://graph.facebook.com/v7.0/234002440799692/feed?&access_token={access_token}

manage_pages permission for an app which uses Graph API but needs no users

I have had an app working for literally years. It ran about 150 pages which I set up and had the manage_pages permission to write to it. It had no users apart from me. Indeed keeping it in "development mode" would work fine. But it isn't allowed to work that way it seems
I could generate the page tokens successfully and then use some PHP to update many of the pages at the same time.
Manage_pages seems to have stopped working.
Now the API reports:
OAuthException: (#200) Requires manage_pages and publish_pages to manage the object
Did not work: OAuthException: (#200) Requires manage_pages and publish_pages to manage the object
Turning off "Make appname public?" I get this:
No known Facebook user
OAuthException: (#200) Requires publish_stream permission
Didn't work: OAuthException: (#200) Requires publish_stream permission
I do not need the page to be public-facing but I do want to continue to use the PHP code to write to the pages.
Facebook keeps on refusing to approve the app since:
"Your app doesn't need to submit for manage_pages or publish_pages to post to Pages or blogs that you admin. As an app admin, you can already access these permissions and post to your own timeline, pages and groups. You can provide access to additional users by adding them to your app as admin or developers. Only apply for manage_pages or publish_pages if your app uses a public-facing login that third party users will access externally."
Well I can, but the app can't.

Permissions: manage_pages vs pages_show_list

I'm using v2.5 of the Facebook Graph API.
What's the difference between manage_pages and pages_show_list permissions?
From the docs it seems that you need manage_pages to get a page access token. But I tried and I was able to get it with just the pages_show_list permission.
Is this a bug or am I missing something?
The docs are vague und not complete on this subject. Facebook says they grant pages_show_list to all apps (I can't confirm this, see this question), while manage_pages requires review by Facebook.
One import difference is the way the app is presented to the user. If you request manage_pages, the user will be told that your app wants to manage his/her pages before the user approves.
Besides that, the only difference I found in the docs is the fact that manage_pages combined with publish_pagesallows apps to, well, publish pages.
pages_show_list simply allows you to receive a list of the pages that the requesting user is an admin of.