问题
I can get the share count of an URL using PHP SDK and using the deprecated rest API, but didn't find a way to get the share counts of an URL using graph API.
Is there any way to find out?
回答1:
Here's a list of API links to get your stats:
Facebook: https://api.facebook.com/method/links.getStats?urls=%%URL%%&format=json
Reddit:http://buttons.reddit.com/button_info.json?url=%%URL%%
LinkedIn: http://www.linkedin.com/countserv/count/share?url=%%URL%%&format=json
Digg: http://widgets.digg.com/buttons/count?url=%%URL%%
Delicious: http://feeds.delicious.com/v2/json/urlinfo/data?url=%%URL%%
StumbleUpon: http://www.stumbleupon.com/services/1.01/badge.getinfo?url=%%URL%%
Pinterest: http://widgets.pinterest.com/v1/urls/count.json?source=6&url=%%URL%%
Edit: Removed the Twitter endpoint, since that one has been deprecated.
Edit: Facebook REST API is deprecated
回答2:
UPDATE - April '15:
If you want to get the count that is available in the Like button, you should use the engagement
field in the og_object
object, like so:
https://graph.facebook.com/v2.2/?id=http://www.MY-LINK.com&fields=og_object{engagement}&access_token=<access_token>
Result:
{
"og_object": {
"engagement": {
"count": 93,
"social_sentence": "93 people like this."
},
"id": "801998203216179"
},
"id": "http://techcrunch.com/2015/04/06/they-should-have-announced-at-420/"
}
It's possible with the Graph API, simply use:
http://graph.facebook.com/?id=YOUR_URL
something like:
http://graph.facebook.com/?id=http://www.google.com
Would return:
{
"id": "http://www.google.com",
"shares": 1163912
}
UPDATE: while the above would answer how to get the share count. This number is not equal to the one you see on the Like Button, since that number is the sum of:
- The number of likes of this URL
- The number of shares of this URL (this includes copy/pasting a link back to Facebook)
- The number of likes and comments on stories on Facebook about this URL
- The number of inbox messages containing this URL as an attachment.
So getting the Like Button number is possible with the Graph API through the fql end-point (the link_stat table):
https://graph.facebook.com/fql?q=SELECT url, normalized_url, share_count, like_count, comment_count, total_count,commentsbox_count, comments_fbid, click_count FROM link_stat WHERE url='http://www.google.com'
total_count
is the number that shows in the Like Button.
回答3:
You should not use graph api. If you either call:
- http://graph.facebook.com/http://www.apple.com
or
- http://graph.facebook.com/?id=http://www.apple.com
both will return:
{
"id": "http://www.apple.com",
"shares": 1146997
}
But the number shown is the sum of:
- number of likes of this URL
- number of shares of this URL (this includes copy/pasting a link back to Facebook)
- number of likes and comments on stories on Facebook about this URL
- number of inbox messages containing this URL as an attachment.
So you must use FQL.
Look at this answer: How to fetch facebook likes, share, comments count from an article
回答4:
After August 7, 2016 you can still make your call like this:
http://graph.facebook.com/?id=https://www.apple.com/
but the response format is going to be different: it won't be
{
"id": "http://www.apple.com",
"shares": 1146997
}
but instead it will be
{
"og_object": {
"id": "388265801869",
"description": "Get a first look at iPhone 7, Apple Watch Series 2, and the new AirPods \u2014 the future of wireless headphones. Visit the site to learn more.",
"title": "Apple",
"type": "website",
"updated_time": "2016-09-20T08:21:03+0000"
},
"share": {
"comment_count": 1,
"share_count": 1094227
},
"id": "https://www.apple.com"
}
So you will have to process the response like this:
reponse_variable.share.share_count
回答5:
What I found useful and I found on one link above is this FQL query where you ask for likes, total, share and click count of one link by looking at the link_stat table
https://graph.facebook.com/fql?q=SELECT%20like_count,%20total_count,%20share_count,%20click_count,%20comment_count%20FROM%20link_stat%20WHERE%20url%20=%20%22http://google.com%22
That will output something like this:
{
data: [
{
like_count: 3440162,
total_count: 13226503,
share_count: 7732740,
click_count: 265614,
comment_count: 2053601
}
]
}
回答6:
Check out this gist. It has snippets for how to get the sharing count for the following services:
- Google plus
- StumbledUpon
回答7:
The facebook like button does two things that the API does not do. This might create confusion when you compare the two.
If the URL you use in your like button has a redirect the button will actually show the count of the redirect URL versus the count of the URL you are using.
If the page has a og:url property the like button will show the likes of that url instead of the url in the browser.
Hope this helps someone
回答8:
Simply type in https://graph.facebook.com/?fields=share&id=https://www.example.com
and replace example with your url or page you are looking for.
Example of Google: https://graph.facebook.com/?fields=share&id=https://www.google.com
回答9:
when i used FQL I found the problem (but it is still problem) the documentation says that the number shown is the sum of:
- number of likes of this URL
- number of shares of this URL (this includes copy/pasting a link back to Facebook)
- number of likes and comments on stories on Facebook about this URL
- number of inbox messages containing this URL as an attachment.
but on my website the shown number is sum of these 4 counts + number of shares (again)
回答10:
Using FQL you could do that:
http://graph.facebook.com/fql?q=SELECT url, total_count FROM link_stat WHERE url='PASTE_YOUR_URL_HERE'
回答11:
There is a ruby gem for it - SocialShares
Currently it supports following social networks:
- google plus
- stumbleupon
- vkontakte
- mail.ru
- odnoklassniki
Usage:
:000 > url = 'http://www.apple.com/'
=> "http://www.apple.com/"
:000 > SocialShares.facebook url
=> 394927
:000 > SocialShares.google url
=> 28289
:000 > SocialShares.twitter url
=> 1164675
:000 > SocialShares.all url
=> {:vkontakte=>44, :facebook=>399027, :google=>28346, :twitter=>1836, :mail_ru=>37, :odnoklassniki=>1, :reddit=>2361, :linkedin=>nil, :pinterest=>21011, :stumbleupon=>43035}
:000 > SocialShares.selected url, %w(facebook google linkedin)
=> {:facebook=>394927, :google=>28289, :linkedin=>nil}
:000 > SocialShares.total url, %w(facebook google)
=> 423216
:000 > SocialShares.has_any? url, %w(twitter linkedin)
=> true
回答12:
You can use the https://graph.facebook.com/v3.0/{Place_your_Page_ID here}/feed?fields=id,shares,share_count&access_token={Place_your_access_token_here} to get the shares count.
来源:https://stackoverflow.com/questions/5699270/how-to-get-share-counts-using-graph-api