Facebook API version changes - facebook

I'm using Facebook API to create audience and upload data to created audience. But every time when Facebook changes API version, my web app show me logs that 'your ads API deprecated, change your API version'. And I know about these changes only after any error occurrence. How can I find out Facebook API version changes automatically? Or has any API that I can request every time and get fresh API version?

Upcoming changes are documented in the change log, usually way ahead of time:
https://developers.facebook.com/docs/apps/changelog
Under https://developers.facebook.com/settings/developer/contact/ you can also specify what changes/events regarding APIs and your apps you want to be notified about, per email and/or notification on Facebook.

Related

Instagram API deprecation 2020

I'm building an app that has the user log in through instagram, it then reads their feed and uses that information for the app. Instagram has a page that says their API's will be deprecated in 2020 but some things will still work. It's not straightforward as to what is being deprecated and what isn't, and I have not found any way to contact them directly. Does anyone know if the following URL will continue working, and if not if this type of app will even be viable in the future? Why is IG and Facebook becoming much more closed platforms to 3rd party integrations?
https://api.instagram.com/v1/users/self/media/recent/
Deprecation notice:
https://www.instagram.com/developer/
The legacy Instagram API - https://www.instagram.com/developer/ will be deprecated in favor of Instagram Graph API provided by Facebook - https://developers.facebook.com/docs/instagram-api
In order to use https://api.instagram.com/v1/users/self/media/recent/ this endpoint you need Basic permission. As documentation says, it will be deprecated in early 2020, which means that the legacy API will be most probably shut down, since there will be no more capabilities to request for.
You should most definitely start building your app with Graph API. Please keep in mind that it takes some time before you can go live with your app. It requires couple of things like Business Verification, review of requested permissions in App review and it can take some time to be able to go live.
Please keep in mind that the Graph API works only for Instagram Business type of accounts. You can't use it for regular accounts at the moment. It is not clear yet if it will be available for all accounts, but most probably it will be in the future. It was the same as with deprecating Public Content permission on Instagram legacy API. They added similar functionality in Graph API.
If you plan to support all users, you will also have to apply for Basic capability in legacy API. In other words, you need to support both Instagram API and Instagram Graph API if you plan to target all Instagram users, both regulars and Business profiles.
Another thing to keep in mind is that you can't really report bugs or get any help from legacy Instagram API. If you will find the bug you can't report it as they do not accept it due to deprecation.
So start building with Instagram Graph API, once you will be good to go, try to add Instagram legacy API support. If everything will be fine and Facebook will add support for legacy accounts, your Graph API should easily take over Instagram legacy API functionality.
Most probably the reason why they are tightening the integrations and makes it harder for the developers is user privacy. They do not want to have yet another incident like Cambridge Analytica for instance.
It does not make sense to build something with the old API, that old API URL will definitely stop working (with all the old api.instagram.com endpoints). There is a new API though: https://developers.facebook.com/products/instagram/

"singular links API is deprecated for versions v2.4 and higher" for Facebook API?

I set up a Facebook Webhook to notify my app of changes to my business page. Then I did the same with the Messenger platform. Then when I started posting as a user of my page, and sending messages, I found out that the user IDs are different across different pages and apps.
So, facebook provides two endpoints: ids_for_apps, and ids_for_pages. There are quite a few "but"s to use these endpoints, but at least in development mode, and for IDs sent by the Messenger webhook, it works. I get the notification and I'm able too look up the IDs and match to an app id (because maybe the user commented on a photo before contacting me via Messenger)
Now if I try to do the same with a sender_id that I got from the Facebook Webhooks, "feed" subscription, I get the "singular links API is deprecated for versions v2.4 and higher"
The url I try to access, even with Graph API Explorer tool is GET /2.9/{sender_id}/ids_for_apps
What's going on here?

Find out whether Facebook page is live streaming

Is possible to find out whether some facebook page is live streaming right now? I was looking at Facebook API and from there it seems to me that it is not possible since /{page_id}/live_videos seems to be working only if you are an admin of the page (or you have been granted the access) since you cannot read live videos of public without page access token.
Yes, you can. This is actually called a WebHook (simultaneous notification of a certain app/user about changes made on the page). To do this you will have to create a Facebook App that will be subscribed to the changes made on a certain page that you want to track.
You can simply do this from the dashboard of the app or through Graph API 2.7(since this version supports live_videos) calling {app-id}/subscriptions and choose any of Page Object Subscriptions, which are available through Facebook API(in your case live_videos).
For this kind of subscriptions your app needs to be whitelisted in order not to spam or re-transmit the information received from a certain page.
To get more information about WebHook implementation please read Facebook API documenation: https://developers.facebook.com/docs/graph-api/webhooks
I know this is quite late already but for those that may stumble on it like I did, Yes it's possible.
As clearly stated in the documentation
Page Live Videos - Facebook API Documentation
You will need to make a GET Request to the endpoint below with the appropriate parameters:
https://graph.facebook.com/v6.0/{page-id}/live_videos
Where page_id is the Facebook Page ID you with to check for active Live Stream
The endpoint also expect broadcast_status whose value for your use case would be LIVE
Note: You will need and app setup on Facebook for developers platform and your query would have to be via the app
Further details can be found in the documentation whose link I provided at the initial part of this answer.
You might be able to get a returned string if there is any, from:
GET /v2.7/{page-id}/live_videos HTTP/1.1
Host: graph.facebook.com
You can read more in: https://developers.facebook.com/docs/graph-api/reference/page/live_videos/

Legal ways to get all recent posts of multiple Facebook pages as soon as possible?

I want to get all the newest posts from 10 (or let's say 1xxxxx) Facebook pages (which I do not own) as soon as they there published without manual refreshing all 10 pages every second. What legal tools should I use?
Use the Facebook Graph API. It allows you to get your application notified via callback HTTP posts whenever certain updates occur. You'll find the API documentation for this feature here:
https://developers.facebook.com/docs/graph-api/real-time-updates/v2.2
Based on your usage, you may have to pay for that service.

facebook push realtime api for public page instead of manually checking

It seems weird that I can get a public page feed on facebook (posts, etc) by doing:
https://graph.facebook.com/cnn/feed?access_token=ACCESSTOKEN
but I can't get that info with their realtime api? Is it possible just to have any changes (posts created) get pushed to me with the realtime api by subscribing to a page, for example the CNN facebook page? It seems silly to just keep on having to hit the graph api every x minutes and check to see if there are any new posts since the last post id when the realtime api could just push them to me. Does anyone know a way to do this? What am I missing?
Thanks
In order to receive real time updates from the page, the app needs to be installed on the Page.
The real-time update settings doesn't let you specify a page_id so there is no way for Facebook to know which pages you want to receive updates from.
Seeing as you won't have permission to install apps to pages you don't have admin access to, you are limited to the method you are already using at the moment. The only way is to continue querying the API periodically and checking for changes.