有没有办法获得特定URL的推特份额?

时间:2011-01-23 18:30:08

标签: twitter

我查看了API文档但找不到它。抓住这个数字看看网址的流行程度会很高兴。如果您正在寻找示例,Engadget会在文章上使用Twitter分享按钮。我试图通过javascript做到这一点。任何帮助表示赞赏。

12 个答案:

答案 0 :(得分:78)

您可以使用以下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日,这种获取推特份额的方式不再适用。详情请见:https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

答案 1 :(得分:51)

从今天开始,这是不可能的,你可以在这里阅读更多内容:

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

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

向上投票,以便用户不会浪费时间尝试。

<强>更新 但是,通过http://opensharecount.com,它们可以根据通过API进行的搜索提供旧的私有JSON URL的替代品(因此您不需要完成所有工作)。

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

答案 2 :(得分:5)

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

答案 3 :(得分:4)

没有

  

如何访问计数API以了解我的网址有多少推文?

     

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

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

答案 4 :(得分:4)

是的,

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

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

检查 Facebook Twitter LinkedIn Pinterest

的共享计数

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已删除“Tweet count endpoint”API。

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

答案 5 :(得分:2)

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

例如,带有计数的官方分享按钮使用这个:

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

JSONP支持添加了&callback=func

答案 6 :(得分:2)

我知道这是一个老问题,但对我来说,由于http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com问题,网址ajaxCross-origin次调用中无效。

我使用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非常重要,因为在url请求原因问题中传递GET

希望它有所帮助。

答案 7 :(得分:1)

此评论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的Topsy回复:

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

18次

答案 8 :(得分:1)

这样你可以用jquery来获取它。 div id =&#34; twitterCount&#34;将在页面加载时自动填充。


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

干杯!

答案 9 :(得分:1)

是的,有。只要您执行以下操作:

  1. 向其中一个网址发出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的计数。 无法使用

答案 10 :(得分:0)

我只是通过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>

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

答案 11 :(得分:0)

此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