Есть ли способ получить количество щебета для определенного URL? - PullRequest
33 голосов
/ 23 января 2011

Я просмотрел документацию по API, но не смог ее найти. Было бы неплохо взять этот номер, чтобы увидеть, насколько популярным является URL. Engadget использует кнопку «Поделиться» в твиттере, если вы ищете пример. Я пытаюсь сделать это через JavaScript. Любая помощь приветствуется.

Ответы [ 12 ]

78 голосов
/ 27 января 2012

Можно использовать следующую конечную точку API:

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

Обратите внимание, что конечная точка http://urls.api.twitter.com/ равна , а не public .)

Конечная точка вернет строку JSON, аналогичную,

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

На клиенте, если вы делаете запрос на получение подсчета общего URL-адреса для вашего собственного домена (тот, который используется сценариемвыполняется с), тогда будет работать запрос AJAX (например, jQuery.getJSON).В противном случае выполните запрос JSONP, добавив 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>

Обновление:

С 21 ноября 2015 г. этот способ подсчета доли в Твиттере больше не работает,Подробнее на: https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

53 голосов
/ 21 ноября 2015

Это уже невозможно, так как с сегодняшнего дня вы можете прочитать больше здесь:

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

И, к сожалению, никаких планов по его реализации нет.

Голосование вверх, чтобы пользователи не теряли времени на попытки.

Обновление: Однако это возможно через http://opensharecount.com,, которые они предоставляютвставная замена для старого частного URL-адреса JSON, основанная на поиске, выполненном через API (поэтому вам не нужно выполнять всю эту работу).

Он основан на конечных точках поиска REST API.Это все еще новая система, поэтому мы должны посмотреть, как она пойдет.В будущем мы можем ожидать больше подобных систем, потому что есть огромный спрос.

5 голосов
/ 11 июля 2013

это для URL с https (для Броди) https://cdn.api.twitter.com/1/urls/count.json?url=YOUR_URL

4 голосов
/ 02 июня 2015

Да,

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

Заменить "http://www.web -technology-experts-notes.in " на " URL вашей полной веб-страницы ".

Проверьте общий счет 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

Обновление: По состоянию на 21 ноября 2015 года Twitter удалил API «Конечная точка подсчета твитов».

Подробнее: https://twitter.com/twitterdev/status/667836799897591808

4 голосов
/ 23 января 2011

Нет.

Как получить доступ к API подсчета, чтобы узнать, сколько твитов было в моем URL?

На этой ранней стадииTweet Button API подсчета является приватным.Это означает, что вам нужно использовать наш JavaScript или iframe Tweet Button, чтобы иметь возможность отображать счет.По мере масштабирования наших систем мы будем стремиться сделать API подсчета общедоступным для разработчиков.

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

2 голосов
/ 09 сентября 2015

Я знаю, что это старый вопрос, но для меня URL http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com не работал при ajax вызовах из-за проблем Cross-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 запросе вызывает проблемы.

Надеюсь, это помогло.

2 голосов
/ 08 сентября 2015

Правильный ответ - правильный.Существуют и другие версии той же конечной точки, которые используются внутри Twitter.

Например, официальная кнопка общего доступа с подсчетом использует эту:

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

Добавлена ​​поддержка JSONP &callback=func.

1 голос
/ 15 декабря 2014

Да, есть. Пока вы делаете следующее:

  1. Отправьте запрос JSONP на один из URL:

    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]. В противном случае это не сработает.

    * * Пример тысяча двадцать-один: * * 1 022

    Отправка запросов от example.com для запроса количества example.com/page/1. Должно работать .

    Отправка запросов от another-example.com для запроса количества example.com/page/1. НЕ будет работать .

1 голос
/ 23 мая 2014

Таким образом, вы можете получить его с помощью jquery.Div id = "twitterCount" заполняется автоматически при загрузке страницы.


     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!

1 голос
/ 27 февраля 2012

Этот комментарий 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 отсчет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...