Facebook - Get unpublished and hidden posts with Real-Time API - facebook

I'm trying to subscribe to the promotable_posts endpoint of the Facebook page to get updates for unpublished and hidden posts ("dark posts"). According to Facebook it should be possible to subscribe to that endpoint: https://developers.facebook.com/docs/pages/realtime#data
But that endpoint is not listed on https://developers.facebook.com/apps/[APP_ID]/webhooks/ and I can't add the subscription of the endpoint via the API either. It's working for endpoints like feed.
How can I subscribe to that endpoint? And how can I get hidden posts? Normally I would use https://graph.facebook.com/[PAGE_ID]/promotable_posts?include_hidden=true&access_token=... to get those posts when I'm polling, but I can't tell Facebook to include hidden posts when I subscribe to an endpoint.

The Facebook documentation is wrong: You don't have to subscripe to "promotable" posts to get unpublished posts and you don't have to do anything else to get "hidden" posts.

is_hidden
If this post is marked as hidden (Applies to Pages only)
From Facebook documentation here.
This flag tells you if the posts are hidden also known as unpublished or "dark posts". Basically it's a post that is shown in public feed but not in the page feed.
However, when you make a call to FB Graph API you still get all the posts, just add this flag in your request in order to filter them later.
The best approach would be pull the data from the api, and manage it in your side, since there is no way to filter them on your calls.

Related

Facebook Graph API return empty Page Events (7th May 2018) [duplicate]

This looks a kind of duplicate question but actually NOT.
So the problem is https://www.facebook.com/julytalk/ has events, for sure.
But when I tried on Facebook Group API toolkit, it returns empty array.
https://developers.facebook.com/tools/explorer/145634995501895?method=GET&path=204859706228731%2Fevents&version=v2.12
Why is this happening?
I could not find any Facebook API endpoint modification notice, at all.
It was working okay before.
Please help me.
https://developers.facebook.com/blog/post/2018/04/04/facebook-api-platform-product-changes
Access to the Events API is not possible at the moment:
...apps currently accessing Events and Groups APIs will lose access today
Update: After Facebook did a lot of changes, it seems to be possible to get events again. You can get events from Pages you manage easily in dev mode. If you want to get public events, you may want to read the answer in this thread: Facebook pages API: "Page Public Content Access" review screencast
The above answer was misleading for me, not because its wrong but because so many things have changed on Facebook's side and I needed further clarification.
This is the current state based on my research (25.08.2020.).
There are several types of events available based on where the event destination is:
User events
Documentation terminology: "Events on User"
API endpoint:
me/events
Page Events
Documentation terminology: "Events on Groups"
API endpoints:
me/groups
group_id/events
Group Events
Documentation terminology: "Events on Pages"
API endpoint:
me/accounts
page_id/events
App Events
Documentation terminology: "Events on an App"
API endpoint:
{application-id}/events
About app events.
The list is taken mostly from Facebooks API event endpoint.
The documentation is wrong on event limitations:
Access to Events on Users and Pages is only available to Facebook
Marketing Partners.
The current state is that "Access to Events on Users and Pages is available to":
A) App Admins (verified with testing)
B) App Developers (verified with testing)
C) App Testers (not verified)
D) Facebook Marketing Partners (not verified)
What does this mean?
This means if your query the "me/accounts" endpoint which will give you a list of page ids.
When you select a page id and then query "your_selected_page_id/events" you will receive:
An empty list if you are not A-D)
A list of events which is not the same as your users.
A lot of confusion and frustration because there is no error message thrown.
I have tested this with different API versions 4.0 - 8.0 and the results were the same.
I have also tested this with a different but similar set of permissions, resulting in the same empty array response.
SOLUTION(S):
TODO: UPDATE: Clarify who needs to become FMP.
To query for page events "someone" needs to be a Facebook Marketing Partner.
https://developers.facebook.com/support/bugs/352704275741601/
Invite your users to become testers.
Helpful links:
Read more on Facebook Marketing Partners.
Officially on Facebook Marketing Partners.
Facebook Graph Explorer.
Facebook Batch Requests.
Additional notes:
Page event fetching has the same requirements as user events fetching.
Group event fetching works for all users (ignores A-D).
Creating batch requests with no FMP will result in response sections that only have empty arrays.

Is there a way to subscribe to a facebook page's public posts feed?

I have seen the graph API for webhooks.
https://developers.facebook.com/docs/graph-api/webhooks/reference/page/
Here it says that I need the manage_pages permission from atleast one of the page admins, but I won't have access to this permission.
What I want to do is to stalk/crawl a facebook page's public posts or shared publicly by someone else on that page. I also want facebook to send me push notifications for these posts, all of this without having any permission from the page admins.
The other option for me is to poll the page's feed in the graph API, but I wanted to know if there was a better solution using callbacks.
Also, not looking for the public feed API. I doubt my use case will be given permission by facebook to use that API.
For the second option, mentioned above, I'm looking at this API -> https://developers.facebook.com/docs/graph-api/reference/v2.10/page/feed
But if I keep polling, I'll definitely see blocks around rate limiting.

Facebook Graph API /{page-id}/feed not getting all posts

I am using /{page-id}/feed endpoint of Facebook Graph API to get the feed from a particular page.
There in the response a post from an user to the page is missing, though from facebook portal I am able to see that post on that page. As that post is visible there I can assume that is public.
Another post from the same user on a different page is also not coming in response.
Any idea on why the post is not getting returned ? also I need details about what kind of data is not supported by facebook page feed API.
Your answer will be really appreciated.

How to get news feed exactly how it appears in facebook homepage newsfeed using api

I am using /me/feed and /me/home to get my feed and my homepage feed respectively.
But the /me/home only shows updates from my friends. I am following many people but not friends with them. My facebook homepage shows all the updates including my friends and the people I am following.
How to get the news feed exactly like the one appears in the fb website?
As #Fabio said, the Graph API does not support it as of now (and I don't think it'll do that in the future). You can only obtain yours and your friends' feeds using the Graph API.
In order to obtain the feeds from a specific person who's not in your friend list, you need a valid User Access Token from that user with a read_stream permission.
There is however a way to read the public feeds of user status updates and page status updates as they are posted to Facebook. This can be done by using the Public Feed API. This will include all feeds that have their privacy set to ‘public’ are included in the stream. Also, you cannot apply to use the API at this time as its access is limited. Its page says:
Access to the Public Feed API is restricted to a limited set of media
publishers and usage requires prior approval by Facebook. You cannot
apply to use the API at this time.
But I think it's just a fancy way of saying that this API is not free and you'll be charged few dollars (which you can find out by getting in touch with someone at Facebook) for using this service.

Since Feb. 6th, can I post to friends' timeline by Graph API call directly?

My question is,
if I am the user using an authorized web application, can I post something to my friends' timeline at once, and without any interactions with me?
I've read this topic and other relative posts on stackoverflow, and I understand that facebook had made some changes.
But when I read Feed Dialog document, I find out that it said:
Your application can also publish directly to a profile's timeline without interaction on the part of someone using your app. To accomplish this, use the corresponding Graph API call
while "Graph API call" is an unavailable link. And I can't figure out what the corresponding graph api call is.
You cannot Post to User's Friends timelines through the Graph API, as simple as that. You can only Post to the authorized User's wall through the Graph API.
The only way to achieve the similar functionality, as the blog post that you have checked suggests is,
If you want to allow people to post to their friend’s timeline from your app, you can invoke the feed dialog. Stories that include friends via user mentions tagging or action tagging will show up on the friend’s timeline (assuming the friend approves the tag).