开发者

Is there a way to get the twitter share count for a specific URL?

I looked through the API documentation but couldn't find it. It would be nice to grab that number to see how popular a url is. Engadget uses the twitter share button on articles if you're looking for a开发者_开发知识库n example. I'm attempting to do this through javascript. Any help is appreciated.


You can use the following API endpoint,

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

Note that the http://urls.api.twitter.com/ endpoint is not public.)

The endpoint will return a JSON string similar to,

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

On the client, if you are making a request to get the URL share count for your own domain (the one the script is running from), then an AJAX request will work (e.g. jQuery.getJSON). Otherwise, issue a JSONP request by appending callback=?:

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>

Update:

As of 21st November 2015, this way of getting twitter share count, does not work anymore. Read more at: https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform


This is not possible anymore as from today, you can read more here:

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

And no plans to implement it back, unfortunately.

Up vote so users do not lose time trying out.

Update: It is however possible via http://opensharecount.com, they provide a drop-in replacement for the old private JSON URL based on searches made via the API (so you don't need to do all that work).

It's based on the REST API Search endpoints. Its still new system, so we should see how it goes. In the future we can expect more of similar systems, because there is huge demand.


this is for url with https (for Brodie) https://cdn.api.twitter.com/1/urls/count.json?url=YOUR_URL


No.

How do I access the count API to find out how many Tweets my URL has had?

In this early stage of the Tweet Button the count API is private. This means you need to use either our javascript or iframe Tweet Button to be able to render the count. As our systems scale we will look to make the count API public for developers to use.

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


Yes,

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

Replace "http://www.web-technology-experts-notes.in" with "your full web page URL".

Check the Sharing count of Facebook, Twitter, LinkedIn and Pinterest

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

Update: As of 21st November 2015, Twitter has removed the "Tweet count endpoint" API.

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


The approved reply is the right one. There are other versions of the same endpoint, used internally by Twitter.

For example, the official share button with count uses this one:

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

JSONP support is there adding &callback=func.


I know that is an old question but for me the url http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com did not work in ajax calls due to Cross-origin issues.

I solved using PHP CURL, I made a custom route and called it through 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
}

It is important to use a POST because passsing url in GET request cause issues.

Hope it helped.


This comment https://stackoverflow.com/a/8641185/1118419 proposes to use Topsy API. I am not sure that API is correct:

Twitter response for www.e-conomic.dk:

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

shows 10 count

Topsy response fro www.e-conomic.dk:

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

18 count


This way you can get it with jquery. The div id="twitterCount" will be populated automatic when the page is loaded.


     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); 

Cheers!


Yes, there is. As long as you do the following:

  1. Issue a JSONP request to one of the urls:

    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. Make sure that the request you are making is from the same domain as the [URL_IN_REQUEST]. Otherwise, it will not work.

    Example:

    Making requests from example.com to request the count of example.com/page/1. Should work.

    Making requests from another-example.com to request the count of example.com/page/1. Will NOT work.


I just read the contents into a json object via php, then parse it out..

<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>

Simple enough, and it serves my purposes perfectly.


This Javascript class will let you fetch share information from Facebook, Twitter and LinkedIn.

Example of usage

<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>

Download

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

More examples and documentation

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜