I have searched this topic for a while, but cannot find any workable solution.
The problem is that I am certainly sure there is a public post in a specific time interval, but it is missing in api response.
For example, a public post api querying url is
https://graph.facebook.com/v2.9/179043295447791_1660881430597296/?access_token=your_token
and my querying url for a page is
https://graph.facebook.com/v2.9/edn168/posts/?limit=100&since=2017-08-20&until=2017-08-25&access_token=your_token
As shown in data, two page ids are the same 179043295447791, and the created date of the missing post is 2017-08-23 which falls in the time interval. Why I cannot get the post?
Does anyone have any tips or suggestions?
Related
I am trying to fetch all of my instagram page's posts (around 57k posts) from facebook's graph API. using the 'media' endpoint described here:
https://developers.facebook.com/docs/instagram-api/getting-started
I have managed to get around 12k posts using it using the query below:
https://graph.facebook.com/v3.3/{ig-user-id}/media?access_token=XXX&pretty=0&fields=timestamp,caption,comments_count,like_count,media_type,media_url,owner,permalink,shortcode,thumbnail_url,username&limit=200
when using this link returning result contains a data part which is for posts' data and a pagination section which includes next and previous urls and cursors for after and before. I used next and got remaining posts each time, until the result didn't have a next url but it had an after cursor but when I used it the data returned was empty.
I thought there might be some kind of limitation, but couldn't find anything so far except for the API rate limits which I don't exceed.
I also tried the graph API explorer and got the same result.
The problem was not solved but I found something I hadn't seen before, it might help people confused like me.
in the endpoint documentation it is declared that this endpoint has a 10k recent posts limitation, therefor we cannot get any more of our posts.
I want to make an application that needs to collect some public data from facebook.
Specifically I need to check reactions and comments made on public posts.
I've noticed two things:
First, According to https://www.facebook.com/apps/site_scraping_tos_terms.php,
scraping is not allowed unless facebook gives you a written permission. (of which how do I ask for permission anyway?)
Second, as far as I see the graph api doesn't allow to get information regarding posts made by another user/page. Am I wrong?
How do I get the information I need in a legal way and is it even possible?
To get public posts in a page and reactions and comments on these posts your app will need will need Page Public Content Access permission. If you have not already created the app, you can find how to do this in this link and how to review your app for permissions in this link.
Once you have the permission you can get public posts from a page using below API request:
https://graph.facebook.com/<PAGE_ID>/posts?access_token=<ACCESS_TOKEN>&fields=name
Get the id of posts you need details for from the response of the above request
Then you can use the below request's to get reactions and comments of the post based on the post id
Get total reactions:
https://graph.facebook.com/<POST_ID>?fields=reactions.summary(true)&access_token=<ACCESS_TOKEN>
Get total reactions of a specific type (NONE, LIKE, LOVE, WOW, HAHA, SAD, ANGRY, THANKFUL, PRIDE):
https://graph.facebook.com/<POST_ID>?fields=reactions.summary(true).type(<REACTION_TYPE>)&access_token=<ACCESS_TOKEN>
Get comments:
https://graph.facebook.com/<POST_ID>?access_token=<ACCESS_TOKEN>&fields=comments.summary(true).limit(999).filter(stream).fields(id,message,created_time,parent)
And as for public posts by a user you will be able to get the total reactions with the same request by providing the post id if the post is public, but you cannot get the comments, however you will get the comments count
Is there a metric that I can pull from the Facebook Graph API that would tell me either/both Response Rate and/or Average Response Time from a page?
I'll attach a screenshot as to what I'm referring to:
I'm seeing this when I go to Settings -> Insights -> Messages, but would love to know how to pull this information from Facebook.
Anyone know the specific metrics or queries I could use to obtain this information?
EDIT: For anyone who offers the displayed_message_response_time, this doesn't work because it is set by the user AND returns a string (not numeric value).
Afaik there is only one way to get the reaction time:
Use /page-id/feed?fields=id,from to get all posts with the info who created them
Filter out the user posts with the "from" field
Get the time between the user post and a page answer (if there is one) post by post
Calculate the average response time based on the resulting times
I believe Fanpage Karma does it that way.
I was reading the fb api doc but I couldn't find a lot about the different type of queries you can build.
Im trying to count all the likes in the posts from certain facebook page of the day.
Does the API supports params like the date or Will I have to take a whole response like the one I get with this request and somehow sum the counts of the likes?
https://graph.facebook.com/PAGE_ID/feed?fields=comments.limit(1).summary(true),likes.limit(1).summary(true)&access_token=XXXXXXX
Thanks
most graph api queries support a since, until params
you can try this based on your example
https://graph.facebook.com/PAGE_ID/feed?fields=comments.limit(1).summary(true),likes.limit(1).summary(true)&access_token=XXXXXXX&since=2015-08-25&until=2015-08-26
I am trying to make some statistics and I need to get count of all posts(not only posts of friends) on facebook on specific day via GraphApi.
Any help appriciated
You can only search through public objects with the Graph API.
https://developers.facebook.com/docs/reference/api/search/
This is how you get all recent public posts:
https://graph.facebook.com/search?q=*&type=post
BUT!
The post search does not support limit/offset paging.
It means that you won't be able to search back through older posts for a given date using since and until.