【问题标题】:How to get facebook share, like, comment count for a url with graph api only (in a non-deprecated way)如何仅使用图形 api 获取 facebook 共享,例如评论计数(以非弃用方式)
【发布时间】:2016-09-13 18:53:23
【问题描述】:

问题是graph api fql v2.1以后会被弃用。

有人可以告诉我如何仅使用图形 api 获得单独的喜欢和给定 url 的共享计数吗?我正在寻找一些文档,但没有任何文档,我只能获得总“分享”,即喜欢 + 分享 + cmets。

是的,我知道有不朽的http://api.facebook.com/restserver.php?method=links.getStats&urls,但如果 facebook 最后将其关闭怎么办?

【问题讨论】:

  • 这个问题是重复的,看这里stackoverflow.com/questions/25830474/…
  • 不,不是,我没有任何喜欢/分享与官方图形 api 调用的计数,如果我弄错了,请告诉我答案。
  • 毕竟不是不朽的 (REST API is deprecated for versions v2.1 and higher (12))

标签: facebook facebook-graph-api facebook-fql


【解决方案1】:

REST API(带有类似http://api.facebook.com/restserver.php?method=links.getStats&urls 的调用)在引入 Graph API v2.1 时被宣布弃用:https://developers.facebook.com/docs/apps/changelog#v2_1_deprecations,但在 2011 年也已被弃用:https://developers.facebook.com/blog/post/616/

因此,据我了解,这将导致该功能在 2016 年 8 月 7 日引入 v2.1 两年后无法使用:

https://developers.facebook.com/docs/apps/versions#howlong

使用 Graph API 最接近 FQL API 调用结果的“旧”REST 是这个 afaik:

https://developers.facebook.com/docs/graph-api/reference/v2.3/url/

但它省略了like_count 指标(不要问我为什么......)。

我个人的意见是,您应该继续使用对link_stat (https://developers.facebook.com/docs/reference/fql/link_stat/) 表的 FQL 调用,因为这将在接下来的近 2 年内可用。这只有在您拥有 v2.0 应用程序时才有可能。也许在那之前会有一些额外的 Graph API 端点。

【讨论】:

  • 也许我应该在 facebook 开发人员支持小组上提出这个问题,遗憾的是没有一个 facebook 工程师回答,尽管他们应该积极参与 SO。总价值不是问题,但如果没有办法获得点赞、分享和可能的 cmet 单独计算,它确实会浪费一些想法和很酷的用例。
  • 至于现在我不得不将此标记为答案并给你赏金,因为没有比你回答的更好的官方文档了,谢谢
【解决方案2】:

我建议使用 SharedCount 之类的工具,它也提供了更多平台。以下是他们获取数据的方式:http://www.sharedcount.com/documentation.php(向下滚动到“来源”)

所以对于 Facebook 来说应该是这样的:

https://api.facebook.com/method/links.getStats?urls=%%URL%%&format=json

你得到一个像这样的 JSON 对象:

..."share_count":66,"like_count":15,"comment_count":1,"total_count":82...

编辑:现在已弃用,但还有另一种可能性,在此线程中进行了解释:Get FB likes, shares and comments for a URL using PHP - with no limit

【讨论】:

  • 不是我想要的,这个链接看起来完全一样的功能,但是有没有关于它的官方文档,什么?
  • 我已编辑我的答案以包含该统计页面的结果,这不正是您想要的吗?
  • 不,我知道它可以工作,但它没有记录,我想要一个正式的、记录在案的图形 api 调用。
  • 但是他们无论如何都拥有并展示了这些数据,它被许多网站使用,但是,没有关于这个的官方文档,这太疯狂了。我们至少知道api.facebook.com/restserver.php?method=links.getStats链接的来源是什么,人们是如何发现它的?
  • 我已经编辑了答案。请不要仅仅因为信息已过时而投反对票。
【解决方案3】:

你可以使用像https://graph.facebook.com/?ids=http://mycodingtricks.com这样的facebook graph api,它会返回一个类似的json代码

{  
    "http://mycodingtricks.com":{  
        "id":"http://mycodingtricks.com",
        "shares":1
    }
}

我开发了我自己的 php 脚本,您可以在上面使用该 api 进行社交计数。 http://mycodingtricks.com/share/social.php?url=YOUR-URL-HERE 它会返回如下数据:

{  
    "facebook":[  
        {  
            "share_count":1,
            "like_count":0,
            "comment_count":0,
            "total_count":1,
            "click_count":0,
            "comments_fbid":567687199998199,
            "commentsbox_count":0
        }
    ],
    "googleplus":10,
    "twitter":3,
    "buffer":0,
    "pinterest":0,
    "stumblupon":1,
    "reddit":"<html><body><h1>403 Forbidden<\/h1>\nRequest forbidden by administrative rules.\n<\/body><\/html>\n",
    "linkedin":0
}

但如果你想自己使用这里有一篇关于如何计算 facebook 分享、点赞和所有的完整文章。 http://mycodingtricks.com/php/2-ways-to-count-facebook-likes-shares-and-comments-using-php/

【讨论】:

  • 不知道为什么这被否决了。在 Facebook 弃用 v2.0 后,https://graph.facebook.com/?ids={URL} 似乎仍然有效。
  • 这对我也有用——投票赞成!我必须以 APP_ID|APP_SECRET 的形式添加访问令牌。我使用的最终 URL 是:https://graph.facebook.com/?ids={page_url}&amp;access_token={APP_ID}|{APP_SECRET},它返回一个 JSON 对象,可以查询喜欢的对象。使用 JSon.Net 的计数是: using (WebClient wc = new WebClient()) { string json = wc.DownloadString(urlToJSONfile); Newtonsoft.Json.Linq.JObject fbData = Newtonsoft.Json.Linq.JObject.Parse(json);喜欢 = fbData["page_url"]["likes"].ToObject(); }
  • Facebook 停止支持 REST API 后,您的应用程序中的 Facebook 计数保持为零
【解决方案4】:

其实获取like number的正确方法是这样的:

http://graph.facebook.com/v2.5/?id=YOUR_URL&fields=og_object{engagement}

og_object 后面的括号是og_object 的第二层。 在此处查看文档:
https://developers.facebook.com/docs/graph-api/reference/url

您可能需要对 url 和括号进行编码,使其看起来像: https://graph.facebook.com/v2.5/?id=ENCODED_URL&fields=og_object%7Bengagement%7D&id=http%3A%2F%2Fwww.cnn.com

查看一个工作示例 graph explorer(点击提交)

【讨论】:

  • 在我看来,这个数字仍然是分享、点赞和 cmets 的总和。
【解决方案5】:

自从最近关闭 API 2.1 以来,所有答案都是错误或不完整的!

我是社交媒体插件 MashShare 的作者,最近我不得不对这个问题进行准确的观察,因为它严重影响了我们插件的分享数。

通过观察验证数据:

https://graph.facebook.com/v2.7/?id=https://www.mashshare.net 包含分享喜欢。

据我所知,获得接近帖子真实分享数的数字的唯一方法是首先获得 url 之类的点赞。比把这个数字从分享和喜欢的总数中减去。

要获得点赞数,您需要获取 url 的对象 id 并创建另一个 API 请求: https://graph.facebook.com/v2.7/14206851986099/likes?summary=true

如果您知道如何将两个请求合并为一个,请告诉我。

【讨论】:

  • 在我的测试中,这个单独的获取喜欢的调用几乎在所有情况下都返回 0。在 URL 上获取共享计数的原始调用总是为 cmets 返回 0,所以我剩下的只是所有内容的一次性总和。您是否在 URL 上获得了有效的点赞数?
  • 示例:graph.facebook.com/2.7/… 返回 share_count=51,729,comment_count=0 graph.facebook.com/2.7/938331369568441/likes?summary=true 返回 total_count=0 我上次使用 FQL 成功调用的相同 URL 返回:share_count=11,985,like_count=14,213,comment_count= 21,531
  • 对 mashshare.net 或 google.com 尝试此操作并结合有效的访问令牌会返回特定数量的喜欢。使用完全合格的链接mashshare.net/downloads/mashshare-social-networks-addon 返回零喜欢,所以是的,你是对的,这似乎没有按预期工作。我假设 FB 计划像最近的 twitter 一样取消点赞数。
【解决方案6】:

截至 2016 年 8 月 19 日,facebook 完全关闭了他们的 rest API。 唯一的替代方法是使用上面建议的图形 API。

【讨论】:

    猜你喜欢
    • 2020-10-14
    • 2011-08-07
    • 2019-09-09
    • 1970-01-01
    • 2023-03-19
    • 2018-01-18
    • 1970-01-01
    • 2018-04-24
    • 2014-08-06
    相关资源
    最近更新 更多