Jaspal Singh
Jaspal Singh

Reputation: 1240

facebook graph API endpoint for getting "likes, shares, comments" for post(s)

Facebook is planning to drop support for FQL after V2.0 https://developers.facebook.com/docs/apps/changelog/#v2_0_fql

The below task could be done easily with FQL

SELECT like_info.like_count, comment_info.comment_count, share_count 
FROM stream 
WHERE post_id = "POST_ID_HERE"

I am unable to find a replacement to the above method in graph api. I know we can get likes and comments count like

POST_ID/likes?summary=true AND 
POST_ID/comments?summary=true 

but I am unable to find a similar endpoint for shares.

NOTE: I am not looking for solutions that take URL input and query graph api for that URL shares, rather I am looking at finding solution to get shares count by POST_ID

PAGE_ID/feed?fields=comments.limit(1).summary(true),likes.limit(1).summary(true)

I have looked at.

  1. Facebook API: best way to get like, share, comment count for a page/group post?
  2. How to get Likes Count when searching Facebook Graph API with search=xxx
  3. Facebook post comment count from Graph API
  4. http://www.quora.com/Facebook-Graph-API/Facebook-Graph-API-How-to-get-the-number-of-likes-on-a-status

The result should be something like this:

{
  "data": [{
      "like_info": {
      "like_count": 3506
    }, 
      "comment_info": {
      "comment_count": 263
    }, 
      "share_count": 278
  }]
}

Any help would be highly appreciated.

Cheers!

UPDATE: It was an access token issue as the token I was using did not have "read_stream" permission.

Upvotes: 21

Views: 37587

Answers (4)

João Mosmann
João Mosmann

Reputation: 2902

The field shares does not need the .summary(true) at the end. It will bring always the total. But the likes and comments does need .summary(true)

Example:

[POST_ID]?fields=shares,likes.summary(true),comments.summary(true)

Improved version works with Graph Api v2.11 (add limit(0) to removes lists of likes and comments and get only summary data):

[POST_ID]?fields=shares,likes.summary(true).limit(0),comments.summary(true).limit(0)

This will bring the total count of shares, comments and likes.

You may have a access_token with an read_stream permission to get the shares count.

Upvotes: 37

Abhishek Goel
Abhishek Goel

Reputation: 19771

Get likes, comments and shares and all 3 combined.

Check my ans : https://stackoverflow.com/a/36997725/2439715

Improved version ( add limit(0) to removes list of likes and get only summary ):

114916098537132_1265715836790480?fields=shares,likes.limit(0).summary(true),comments.limit(0).summary(true)

Upvotes: 5

kmoney12
kmoney12

Reputation: 4490

Get comments, shares, and likes count from post:

[POST_ID]/?fields=id,shares,likes.limit(0).summary(true),comments.limit(0).summary(true)

I've included limit(0) to prevent the API from spitting out the actual comments and likes. I believe the default limit is 25.

Please note you can also add these fields to /feed to get this data for all the posts on the page.

[PAGE_ID]/feed?fields=id,shares,likes.limit(0).summary(true),comments.limit(0).summary(true)

Final note: If shares data is missing on the return, it is because the post has no shares. Instead of returning "shares": {"count": 0}, the shares section will be removed entirely.

Upvotes: 3

user3043185
user3043185

Reputation: 9

"https://graph.facebook.com/v2.2/PAGEid_POSTid/? fields=shares&access_token=YOUR_ACCESS_TOKEN";

I am using above mentioned endpoint.

Replace $pageID and $videoID (post id) with your variables.

"https://graph.facebook.com/v2.2/" . $pageID."_".$video->id . "/?fields=shares&access_token=YOUR_ACCESS_TOKEN";

Upvotes: 1

Related Questions