Generate page access token facebook app - facebook-graph-api

I'm trying to create a Messenger bot.
I need to generate a page access token to use it through my app.
However, when I try to generate it, I had the following error
Warning
Platform Access Disabled: Access temporarily disabled due to changes to the Facebook Platform
I have looked for it on Google and it seems that Facebook has blocked temporarily access to their platform as they are making modifications...
Is there another way to generate a token?
I'm able to generate a token for the Graph API explorer. Can I use that one through my app?
Thanks.

You can use your app token in graph api explorer. Please
Select your Apps and select which token that you need select token.

On March 26 2018, Facebook temporarily paused app review, meaning you cannot create new app/page tokens with specific permissions. According to Facebook:
We made the following changes:
Pause app review: We paused app review last week while we implement new changes to our platform.
Access to user friends requires Login Review: We are treating user_friends as an extended permission that requires Login Review.
source

Related

How can I get the code from Server side using Instagram Basic Display API?

I am new to Instagram Basic Display API. All I need is to get the recent media published on my Instagram account. I have followed all the steps mentioned here until step 4. In step 4 when I am accessing the authorize URL it is asking me to log in to my test user instagram account first and then displaying the authorized window. Just imagine this from a user perspective. If a user is clicking on a button and if it is asking for entering the credentials of my account it seems to be like exposing my account details publicly.
Once I click on the authorize button it is redirecting to my redirect_uri and I can get the code.
How can I implement the same from the server-side? There will be no user interaction for the project I am working on. It should happen from the backend itself. I am using Django as the backend server. Please help me with this.
If this is just for your own project and your own Instagram account you can generate access token like it's described here: https://developers.facebook.com/docs/instagram-basic-display-api/overview/#user-token-generator
You don't need the authorization window in that case. On your server just write a code that will send the request to Basic Display API with token created via Token Generator.

Is there a way to use Google Photos API without requiring authentication through user prompt?

I have some previous experience with the youtube and youtube analytics api where there was an option to use https://developers.google.com/oauthplayground/ to essentially create an offline situation for your own user account api access. By creating the key in the developer console you could add that to a custom oAuth credentials. The user account you were logged into would then generate the access token and refresh token needed. I do not see Google Photos API listed as an option here. I would prefer not to create a website just to get a prompt once (myself).
Any help would be greatly appreciated.
If you are specifically after a token to make your own requests to the API, you can still use the OAuth 2.0 playground. You can enter your own scope in the tool under step 1, just below the list of scopes on the left side. (The text box is labelled "Input your own scopes".)
Here you can manually enter a scope that's listed on the "Authentication and authorization scopes" page in the Google Photos Library API developer documentation.
In step 2, you can access a refresh and access tokens and construct your own request in step 3. Note that you won't be able to List possible operations for this API.
Note that you can also specify your own OAuth client ID and client secret from your own Google developers project. You can find this under the "settings" icon on the right, under "Use your own OAuth credentials". Otherwise, tokens are automatically revoked by the playground after a certain amount of time.
However - If you just want to explore the API through the playground, you can use the version that's embedded in the reference documentation. You can find it on each page for a method, for example mediaItems.list. This version includes support for all API methods and makes it easy to construct correct API requests.

Graph API manage_pages and publish_pages permissions disappearing from an access token's scope

I am using the Graph API to automatically post to a Page. To get a Page Access Token, I have first logged in to my app using the Graph API Explorer's login with the permissions manage_pages, publish_pages and pages_show_list. I then used the access token tool to extend it, then used that to call me/accounts in the Explorer to obtain a Page Access token with no expiry time.
When I first logged in to my app, it was in development mode. I looked at the access token in the Access Token Debugger and saw it had the manage_pages and publish_pages permissions. However, when I make the app public, these permissions disappear from the scope of the access token, even though the user it refers to is an Admin of the app. When I try to make an API call in public mode, I get the following error:
(#200) This endpoint is deprecated since the required permissions manage_pages,publish_pages are deprecated
This really confuses me, as I believe those permissions have not been deprecated.
Does anyone know why the perms are disappearing/becoming "deprecated" when I switch the app to public mode?
I had a similar problem.
After contacting Facebook, it turns out this is an app verification issue, and the publish_pages permission is available for private test apps, and properly approved public apps.
Sadly manage_pages and publish_pages permissions are deprecated. From their documentation -
As of April 24,2018, the pubish_actions permission has been removed. Please see the Breaking Changes Changelog for more details. To provide a way for your app users to share content to Facebook, we encourage you to use our Sharing products instead.
You can check out this link that mentions the above details.

Deprecated Facebook login permissions

My app integrates Facebook login with the following permissions :user_education_history and user_work_history. The app was working just fine until today morning when I attempt to login I get the following error:
invalid scopes: user_education_history, user_work_history. This message is only shown to developers other app users will ignore these permissions if present.
I went through the docs and I discovered that they were deprecated on the 4th of this month but I cannot seem to find the new permissions for the education and the work history ... any help ?
Facebook is removing access to a lot of things as a result of recent negative press surrounding data mining of their users. In almost all cases the information is simply no longer available, there is no alternative method to access it.
More information is available in the Facebook developer blog:
https://developers.facebook.com/blog/post/2018/04/04/facebook-api-platform-product-changes/
https://developers.facebook.com/blog/post/2018/04/24/new-facebook-platform-product-changes-policy-updates
Note that the message you mention is only shown to Facebook accounts with developer credentials. Regular Facebook users don't see this message and the Facebook API simply ignores requests for scopes which are no longer allowed. If the data being requested are optional in the context of the app, you should create a test Facebook account and see how it behaves when requesting the data doesn't return anything (or causes unexpected errors).

How to read Facebook Insights for a Native/Desktop app programmatically

Unfortunately I'm struggling to understand the documentation provided by Facebook.
This is the scenario:
- Some of my iPhone Apps are also registered as Native/Desktop Apps on Facebook in order to support the Facebook Audience Network.
- I'm building a tool in python which will retrieve data from the reporting API in order to run some automated analysis on specific metrics (request, impressions and so on).
The question is: how do I retrieve this data?
The documentation for the reporting API is here: Reporting API
However I'm struggling with the access token.
It says that I could use the specific App Token available here: App Tokens
However by using such token, I get an error saying that app tokens can't be used for Desktop/Native Ads.
What is the correct way to do it then? Here is where I struggle to understand Facebook Documentation.
My guess is that I should use a User Access Token instead, generated for a user that is also the admin of the App for which I want to retrieve the insights.
What really freaks me out is that apparently, this can't be done with normal HTTP calls only but it requires instead to go through the Facebook Login Dialog. I also need to create another Facebook (web) app because there is no way to get a simple "User Object"... Everything needs to start and go through a registered Facebook App. And there's no way to go through these steps by using backend code only.
So... to recap... in order to read the Insights for a Native/Desktop Facebook App (APP_A), I have to:
- Create a new Web Facebook App (APP_B)
- Create a web interface somewhere for APP_B) which will trigger the Facebook Login Dialog and request the read_insights permission.
- Login through this web interface and generate a User Access Token
- Put this User Access Token in my backend code and run the scripts that retrieve the data provided by the Reporting API for APP_B
Really... to me... it doesn't make any sense to create a new Facebook App in order to access the data of another Facebook App.
Isn't there another better, simpler, quicker, cleaner way to achieve the same final result?