Facebook Graph API permissions for public pages - facebook-graph-api

Please tell me if I didn't miss any required permissions and didn't take something superfluous for my app in Facebook Graph Api.
My goal is to:
Access any public [profiles'/pages'/groups'] [posts/stories/feed] on [facebook/instagram]
The permissions I'm going to choose:
pages_show_list
instagram_basic
user_posts
pages_read_engagement [needed for instagram_basic]
Groups API
Page Public Content Access
Is everything right? Thanks

Related

How can I get posts from public pages with Graph API?

I have Graph API Facebook. As shown as when I get my Posts that work. but when I get public page that not wok and get error (#100) Pages Public Content Access requires either app secret proof or an app token. I generate token with all permissions but not work.
My posts(worked):
JasonStatham posts(not work):
You can do this via official GraphQL QPI, in specific the /page-post endpoint.
There is also a good example here of how to do that with Python.
However, you need to keep in mind that in order to use this API you need to have a Facebook Application with 'Page Public Content Access'.
To get that permission your app must be a verified Business app.

No access to Facebook user/live_videos even though I have user_videos permissions

I have approved access to Facebook user_videos permission. This is supposed to give me access to the user/live_videos endpoint. However when my users hit this endpoint the exception is returned from Facebook.
(#10) To use live-video-api on behalf of people who are not admins, developers and testers of your app, your use of this endpoint must be reviewed and approved by Facebook. To submit this feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review
If I hit this endpoint with my account I can access my live video just fine. But not with other users who have authorized access to the user_videos permission.
Approved permission
Why would I not be able to access the users live videos using $fb->get('/{user-id}/live_videos'?
Instead I get the exception.

Pulling Public Account Information Using FB API

I am trying to pull information(name, posts, email, etc) of arbitrary public Facebook accounts. I have a Facebook App. However, I am unable to pull anyone's data because there is no "universal access token" that would allow me access every public account's data.
To test the app, I made a dummy Facebook account and gave that account a developer role in the app. Based on Facebook documentation, since my app is in development mode and the dummy account has a role in the app, I should be able to pull its data. Even with an access token where all of the boxes are enabled, I am still unable to access this data.
Suppose 123456789 is the Facebook id of account I am trying to get info from
Get request from admin account - GET/v3.3/123456789?fields=posts
I expected to get a list of all of the posts from the user; however, I get:
{
"id": "123456789"
}
Is it still possible to pull public account data through Facebook? I know that to do so in live mode, I will need to get Facebook to approve a Page Public Content Access feature, but I am unable to get to that point, because I cannot access public posts in development mode.
If this is about User Profiles:
It is not possible to get ANY data of a user without his explicit permission. You donĀ“t even get an ID of the user without him authorizing your App first. For accessing his posts, you would even need an additional permission (user_posts). For accessing his email, you would need the email permission.
If this is about Pages:
You need to apply for Page Public Content Access in order to get access to posts of Pages.

Facebook ads authorisation

My application use facebook authentication to ask the user permissions to manage his ads. i use the following scope:'public_profile,ads_management,ads_management'
but in the login window it shows only public profile which will an invalid access token for the ads management.
have a look at this answer https://stackoverflow.com/a/25901780/5410373
the ads_management extended permission is only granted to whitelisted apps. So if the Graph endpoint you're hitting requires that permission then you'll have to get your app approved. Check out the getting started overview https://developers.facebook.com/docs/reference/ads-api/overview
and this answer : https://stackoverflow.com/a/24753070/5410373
All permissions except
public_profile
user_friends
email
require a review of your app by Facebook before you can use them publically. See https://developers.facebook.com/docs/apps/review/login#do-you-need-review

Why http://www.friend.ly can get information when I don't confirm

I really surprise when use http://www.friend.ly site. I'm login Facebook and after go to http://www.friend.ly. I'm surprise because I don't confirm extended permission but this site can get email, address... Any ideas?
My Information
Information get from friend.ly site
They are using the Facebook Registration Plugin which basically renders an iframe from Facebook's server. Due to cross-domain browser restrictions, they can't actually access any of that data until you submit the form by clicking the register button.
If you read the section on the Graph API documentation about authorization you'll see that if they're using an OAuth 2.0 access token then they can retrieve any information that you have publicly available without your authorization. You can see the examples below.
The Graph API as such allows you to easily access all public information about an object. For example, https://graph.facebook.com/btaylor (Bret Taylor) returns all the public information about Bret. For example a user's first name, last name and profile picture are publicly available.
To get additional information about a user, you must first get their permission. At a high level, you need to get an access token for the Facebook user. After you obtain the access token for the user, you can perform authorized requests on behalf of that user by including the access token in your Graph API requests:
https://graph.facebook.com/220439?access_token=...
For example https://graph.facebook.com/btaylor?access_token=... (Bret Taylor) returns additional information about Bret Taylor.
The Graph API uses OAuth 2.0 for authorization. Please read the authentication guide which provides details of Facebook's OAuth 2.0 implementation, how to request permissions from a user and obtain an access token.
Getting an access token for a user with no extended permissions allows you to access the information that the user has made available to everyone on Facebook. If you need specific information about a user, like their email address or work history, you must ask for the specific extended permissions. The reference documentation for each Graph API object contains details about the permissions you need to access each connection and property on that object.
This quote is from the facebook documentation located here:
https://developers.facebook.com/docs/reference/api/