【问题标题】:Is there a way to get the twitter share count for a specific URL?有没有办法获取特定 URL 的 twitter 共享计数?
【发布时间】:2011-06-14 02:50:56
【问题描述】:

我查看了 API 文档,但找不到。抓住这个数字来看看一个 url 有多受欢迎会很好。如果您正在寻找示例,Engadget 会在文章中使用 twitter 分享按钮。我正在尝试通过javascript来做到这一点。任何帮助表示赞赏。

【问题讨论】:

  • 截至 2015 年 11 月,此页面上的答案均无效。
  • 这是因为the official Twitter buttons 删除了显示共享计数的选项。

标签: twitter


【解决方案1】:

您可以使用以下 API 端点,

http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com

注意http://urls.api.twitter.com/端点是not public。)

端点会返回一个类似的 JSON 字符串,

{"count":27438,"url":"http:\/\/stackoverflow.com\/"}

在客户端上,如果您请求获取您自己的域(运行脚本的域)的 URL 共享计数,则 AJAX 请求将起作用(例如jQuery.getJSON)。否则,通过附加 callback=? 发出 JSONP 请求:

jQuery.getJSON('https://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com/&callback=?', function (data) {
    jQuery('#so-url-shares').text(data.count);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="so-url-shares">Calculating...</div>

更新:

自 2015 年 11 月 21 日起,这种获取 twitter 份额计数的方式不再有效。阅读更多:https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

【讨论】:

  • 支持jsonp,加&callback=my_callback
  • 非常感谢!你节省了我的时间。
  • http://cdn.api.twitter.com/http://urls.api.twitter.com/ 都没有正式公开或记录在案,但它们是相同的并且工作正常。官方小部件现在正在使用一个新的端点,我将其发布在下面,仅供分享。
  • 自 2015 年 10 月起,Twitter 将弃用此端点 twittercommunity.com/t/…
  • 此(Twitter 私有)API 端点将于 2015 年 11 月 20 日关闭。
【解决方案2】:

从今天开始,这已经不可能了,您可以在这里阅读更多内容:

https://twitter.com/twitterdev/status/667836799897591808

不幸的是,没有计划实施它。

投票让用户不会浪费时间尝试。

更新: 但是,可以通过http://opensharecount.com 进行,它们基于通过 API 进行的搜索提供旧私有 JSON URL 的替代品(因此您不需要做所有这些工作)。

它基于 REST API 搜索端点。它仍然是新系统,所以我们应该看看它是如何运行的。未来我们可以期待更多类似的系统,因为需求巨大。

【讨论】:

  • 好吧,现在还不确定他们是否会再次实施它。在他们最新的博客文章中,他们要求提供一些反馈,并提到可能会再次发生。一个人直接在推特论坛上问他们:twittercommunity.com/t/…
【解决方案3】:

这是用于带有 https 的 url(用于 Brodie) https://cdn.api.twitter.com/1/urls/count.json?url=YOUR_URL

【讨论】:

【解决方案4】:

没有。

如何访问 count API 以了解我的 URL 有多少条推文?

在 Tweet Button 的早期阶段,计数 API 是私有的。这意味着您需要使用我们的 javascript 或 iframe Tweet Button 才能呈现计数。随着我们系统的扩展,我们将寻求公开计数 API 以供开发人员使用。

http://dev.twitter.com/pages/tweet_button_faq#custom-shortener-count

【讨论】:

  • Aaaand count.json 截至今天已损坏。
【解决方案5】:

是的,

https://share.yandex.ru/gpp.xml?url=http://www.web-technology-experts-notes.in

将“http://www.web-technology-experts-notes.in”替换为“您的完整网页网址”。

查看 FacebookTwitterLinkedInPinterest

的分享次数

http://www.web-technology-experts-notes.in/2015/04/share-count-and-share-url-of-facebook-twitter-linkedin-and-pininterest.html

更新: 自 2015 年 11 月 21 日起,Twitter 已删除“推文计数端点”API。

阅读更多:https://twitter.com/twitterdev/status/667836799897591808

【讨论】:

【解决方案6】:

批准的回复是正确的。 Twitter 内部使用了同一端点的其他版本。

比如官方的分享按钮count就用了这个:

https://cdn.syndication.twitter.com/widgets/tweetbutton/count.json?url=[URL]

JSONP 支持添加&amp;callback=func

【讨论】:

  • 感谢您的更新。这真的应该得到更多的支持!
【解决方案7】:

我知道这是一个老问题,但对我来说,由于Cross-origin 问题,ajax 调用中的 URL http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com 不起作用。

我使用 PHP CURL 解决了,我做了一个自定义路由并通过 ajax 调用它。

  /* Other Code */
  $options = array(
    CURLOPT_RETURNTRANSFER => true,   // return web page
    CURLOPT_HEADER         => false,  // don't return headers
    CURLOPT_FOLLOWLOCATION => true,   // follow redirects
    CURLOPT_MAXREDIRS      => 10,     // stop after 10 redirects
    CURLOPT_ENCODING       => "",     // handle compressed
    CURLOPT_USERAGENT      => "test", // name of client
    CURLOPT_AUTOREFERER    => true,   // set referrer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,    // time-out on connect
    CURLOPT_TIMEOUT        => 120,    // time-out on response
);
$url = $_POST["url"]; //whatever you need
if($url !== ""){
    $curl = curl_init("http://urls.api.twitter.com/1/urls/count.json?url=".$url);
    curl_setopt_array($curl, $options);
    $result = curl_exec($curl);
    curl_close($curl);
    echo json_encode(json_decode($result)); //whatever response you need
}

使用POST 很重要,因为在GET 请求中传递url 会导致问题。

希望对您有所帮助。

【讨论】:

  • 是的。得另辟蹊径
【解决方案8】:

这条评论https://stackoverflow.com/a/8641185/1118419 建议使用Topsy API。我不确定 API 是否正确:

Twitter 对 www.e-conomic.dk 的回应:

http://urls.api.twitter.com/1/urls/count.json?url=http://www.e-conomic.dk

显示 10 个计数

来自 www.e-conomic.dk 的混乱回应:

http://otter.topsy.com/stats.json?url=http://www.e-conomic.dk

18 计数

【讨论】:

  • topsy 有内部的 twitter feed 分析器,我认为他们实时加载 twitter 数据并且具有与 twitter 不同的聚合策略。
  • 但他们的请求上限非常小 - 不是吗?
  • @Andriy Kuba:在 Google Chrome 中,otter.topsy.com/stats.json?url=http://www.e-conomic.dk 没有显示任何结果。你知道为什么吗?
【解决方案9】:

这样你就可以用jquery来获取了。页面加载时,div id="twitterCount" 将自动填充。

函数getTwitterCount(网址){ var 推文; $.getJSON('http://urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=?', function(data){ 推文 = data.count; $('#twitterCount').html(tweets); }); } var urlBase='http://http://stackoverflow.com'; getTwitterCount(urlBase);

干杯!

【讨论】:

【解决方案10】:

是的,有。只要你做到以下几点:

  1. 向其中一个 url 发出 JSONP 请求:

    http://cdn.api.twitter.com/1/urls/count.json?url=[URL_IN_REQUEST]&callback=[YOUR_CALLBACK]

    http://urls.api.twitter.com/1/urls/count.json?url=[URL_IN_REQUEST]&callback=[YOUR_CALLBACK]

  2. 确保您发出的请求与[URL_IN_REQUEST] 来自同一个域。否则,它将不起作用。

    例子:

    example.com 发出请求以请求example.com/page/1 的计数。 应该可以工作

    another-example.com 发出请求以请求example.com/page/1 的计数。 不会工作

【讨论】:

    【解决方案11】:

    我只是通过php将内容读入一个json对象,然后解析出来..

    <script>
    <?php
    $tweet_count_url = 'http://urls.api.twitter.com/1/urls/count.json?url='.$post_link;
    $tweet_count_open = fopen($tweet_count_url,"r");
    $tweet_count_read = fread($tweet_count_open,2048);
    fclose($tweet_count_open);
    ?>
    var obj = jQuery.parseJSON('<?=$tweet_count_read;?>'); 
    jQuery("#tweet-count").html("("+obj.count+") "); 
    </script>
    

    足够简单,它完全符合我的目的。

    【讨论】:

    • urls.api.twitter.com 端点是 forbidden 来自公众使用。
    【解决方案12】:

    这个 Javascript 类将让您从 Facebook、Twitter 和 LinkedIn 获取共享信息。

    使用示例

    <p>Facebook count: <span id="facebook_count"></span>.</p>
    <p>Twitter count: <span id="twitter_count"></span>.</p>
    <p>LinkedIn count: <span id="linkedin_count"></span>.</p>
    <script type="text/javascript">
        var smStats=new SocialMediaStats('https://google.com/'); // Replace with your desired URL
        smStats.facebookCount('facebook_count'); // 'facebook_count' refers to the ID of the HTML tag where the result will be placed.
        smStats.twitterCount('twitter_count');
        smStats.linkedinCount('linkedin_count');    
    </script>
    

    下载

    https://404it.no/js/blog/SocialMediaStats.js

    更多示例和文档

    Javascript Class For Getting URL Shares On Facebook, Twitter And LinkedIn

    【讨论】:

      猜你喜欢
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2018-07-12
      相关资源
      最近更新 更多