获取特定URL的facebook * shares *的数量

时间:2012-02-27 11:28:53

标签: facebook facebook-graph-api facebook-like

我在图表api中发现了一些差异,并且想知道是否有人能够解决这些问题。

https://graph.facebook.com/?id=http://www.imdb.com/title/tt0117500/输出一个“赞”号以及imdb提供的与其fb:app_id相关联的所有打开的图形信息。 https://graph.facebook.com/?id=http://www.google.com然而,输出“分享”号码,因为谷歌不提供fb:app_id或fb:admins。

我的问题是我需要第一个网址的“分享”号码,因为它与like button中显示的号码相对应(喜欢+评论等)

有没有办法可靠地获取任何网址的“分享”号码?

3 个答案:

答案 0 :(得分:57)

此API不再可用。以下答案不再有效。


我可以通过API的GET请求获取页面的统计信息(例如http://techcrunch.com)。只需发出此GET请求http://api.facebook.com/restserver.php?method=links.getStats&urls=[YOUR_URL]并获取统计信息。

http://api.facebook.com/restserver.php?method=links.getStats&urls=http://techcrunch.com/ 返回

<links_getStats_response xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd" list="true">
    <link_stat>
        <url>http://techcrunch.com/</url>
        <normalized_url>http://www.techcrunch.com/</normalized_url>
        <share_count>6244</share_count>
        <like_count>1513</like_count>
        <comment_count>1391</comment_count>
        <total_count>9148</total_count>
        <click_count>4007</click_count>
        <comments_fbid>433841427570</comments_fbid>
        <commentsbox_count>4</commentsbox_count>
    </link_stat>
</links_getStats_response>

希望这有帮助。


同时

如果您希望将该响应作为JSON,只需将&format=json附加到请求网址 - Dexter
(来自评论。感谢德克斯特!)

答案 1 :(得分:6)

您需要将Facebook的FQL与表link_stat一起使用。使用与此类似的东西

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.imdb.com/title/tt0117500/"

这是该查询的结果(XML格式,当然可以用JSON获取)

<?xml version="1.0" encoding="UTF-8"?>
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
  <link_stat>
    <url>http://www.imdb.com/title/tt0117500/</url>
    <normalized_url>http://www.imdb.com/title/tt0117500/</normalized_url>
    <share_count>6233</share_count>
    <like_count>9500</like_count>
    <comment_count>2179</comment_count>
    <total_count>17912</total_count>
    <commentsbox_count>6</commentsbox_count>
    <comments_fbid>380728101301</comments_fbid>
    <click_count>164</click_count>
  </link_stat>
</fql_query_response>

total_count(17912)是您要查找的号码。

答案 2 :(得分:0)

Facebook以前的API选项不再可用。假设您想以编程方式执行此操作,Facebook目前不提供这样做的方式(据我所知)。

您可能会抓取Facebook like button示例的来源,但这似乎容易出错,尤其是考虑到他们先前的行动历史。

我发现一个第三方选项是SharedCount,它具有一个API available。它需要注册一个免费帐户,但是向this endpoint发出GET请求将导致以下示例响应:

{"StumbleUpon":1,"Pinterest":9,"LinkedIn":3744,"Facebook":{"total_count":
168,"comment_count":53,"reaction_count":14,"share_count":
101, "comment_plugin_count":0},"GooglePlusOne":189}

从那里,您可以解析出Facebook total_count值,该值应该与您在嵌入式Facebook共享按钮旁边看到的内容相对应。

值得注意的是,我必须从示例URL中删除尾部正斜杠,以便从其API返回的SharedCount值与按钮示例中的计数匹配,因此,您可能需要尝试确保它在您的用例。