2011-01-23 8 views
33

Ho esaminato la documentazione dell'API ma non sono riuscito a trovarlo. Sarebbe bello prendere quel numero per vedere quanto è popolare un url. Engadget usa il pulsante di condivisione di Twitter sugli articoli se stai cercando un esempio. Sto tentando di farlo tramite javascript. Qualsiasi aiuto è apprezzato.C'è un modo per ottenere il conteggio delle condivisioni di Twitter per un URL specifico?

+0

a partire da novembre 2015 nessuna delle risposte in questa pagina funziona. – Alex

+0

Questo perché [i pulsanti Twitter ufficiali] (https://about.twitter.com/resources/buttons) hanno rimosso l'opzione per mostrare il conteggio delle condivisioni. –

risposta

4

No.

Come posso accedere alle API conteggio per scoprire quanti Tweets mio URL ha avuto?

In questa fase iniziale del pulsante Tweet API conteggio è privato. Ciò significa che è necessario utilizzare il nostro pulsante Tweet javascript o iframe per poter eseguire il conteggio. Poiché i nostri sistemi sono scalabili, cercheremo di rendere pubblica l'API di conteggio per gli sviluppatori.

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

+1

@ user799188 ha un aggiornamento per voi – panchicore

+4

assolutamente possibile! – jahrichie

+0

Il collegamento è interrotto ora. –

79

È possibile utilizzare il seguente endpoint API,

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

Nota che l'endpoint http://urls.api.twitter.com/ è not public.)

L'endpoint restituirà una stringa JSON simile a ,

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

Sul client, se si stanno facendo una richiesta per ottenere il numero di azioni URL per il proprio dominio (quello lo script è in esecuzione da), quindi una richiesta AJAX funziona (per esempio jQuery.getJSON). In caso contrario, emettere una richiesta JSONP aggiungendo 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>

Aggiornamento:

A partire dal 21 novembre 2015, in questo modo di ottenere conte Twitter azione, non funziona più. Per ulteriori informazioni: https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

+0

Esistono soluzioni abilitate SSL (https: //)? –

+15

supporta jsonp, basta aggiungere & callback = my_callback – Davorin

+0

Grazie mille! risparmi il mio tempo –

1

Questo commento https://stackoverflow.com/a/8641185/1118419 propone di utilizzare Topsy API. Io non sono sicuro che API è corretto:

Twitter di risposta per www.e-conomic.dk:

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

mostra 10 conteggio

risposta Topsy fro www.e- conomic.dk:

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

18 conteggio

+1

topsy ha un analizzatore di feed di Twitter in-house, penso che caricino i dati di Twitter in tempo reale e abbiano una strategia di aggregazione diversa da Twitter. – panchicore

+0

ma hanno qualche tappo veramente piccolo per le richieste - no? –

+0

@Andriy Kuba: non sta mostrando alcun risultato per http://otter.topsy.com/stats.json?url=http://www.e-conomic.dk in Google Chrome. Sai perché? –

5

questo è per l'url con https (per Brodie) https://cdn.api.twitter.com/1/urls/count.json?url=YOUR_URL

+2

Questo è in realtà l'URL corretto per la ricerca di conteggi tweet, https o no. http://urls.api.twitter.com/1/urls/count.json?url= non è un'API pubblica e non dovrebbe essere utilizzata. –

0

Ho appena letto il contenuto in un oggetto JSON tramite php, quindi analizzarlo fuori ..

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

Abbastanza semplice, e serve i miei scopi perfettamente.

+0

L'endpoint urls.api.twitter.com è [vietato] (http://stackoverflow.com/a/9031032/1269037) di uso pubblico. –

1

In questo modo è possibile farlo con jquery. Il div id = "twitterCount" verrà popolato automaticamente quando la pagina viene caricata.

 

    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!

+0

L'endpoint urls.api.twitter.com è [vietato] (http://stackoverflow.com/a/9031032/1269037) di uso pubblico. –

+1

Thks @DanDascalescu, mi dispiace per il mio feed back più tardi, quando ho scritto la risposta questo era possibile ma ora non lo è più. Si prega di ignorare la mia risposta sopra, ecco la giustificazione di Twitter: https://twitter.com/twitterdev/status/667836799897591808 –

1

Sì, c'è. Finché effettuare le seguenti operazioni:

  1. emettere una richiesta JSONP a uno degli 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. Assicurarsi che la richiesta è stanno facendo è dallo stesso dominio del [URL_IN_REQUEST]. Altrimenti, non funzionerà.

    Esempio:

    Fare richieste da example.com di richiedere il conteggio di example.com/page/1. Dovrebbe funzionare.

    Fare richieste da another-example.com per richiedere il conteggio di example.com/page/1. NON funzionerà.

0

Questa classe JavaScript vi permetterà di recuperare informazioni azione da Facebook, Twitter e LinkedIn.

Esempio di utilizzo

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

Scarica

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

Altri esempi e la documentazione

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

4

Sì,

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

sostituire "http://www.web-technology-experts-notes.in" con "vostra piena pagina web URL".

Controllare il conteggio Condivisione di Facebook, Twitter, LinkedIn e Pinterest

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

Aggiornamento: Come del 21 novembre 2015, Twitter ha rimosso il "Tweet conteggio endpoint "API.

Per saperne di più: https://twitter.com/twitterdev/status/667836799897591808

+1

Questo è morto oggi. –

+0

Sì, questo è andato. Mi piacerebbe una risposta aggiornata a questo. – lcm

2

La risposta approvata è quella giusta. Esistono altre versioni dello stesso endpoint, utilizzate internamente da Twitter.

Ad esempio, il pulsante ufficiale del titolo con il conteggio utilizza questo:

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

supporto JSONP c'è l'aggiunta di &callback=func.

+0

Grazie per l'aggiornamento. Questo dovrebbe davvero essere più votato ora! – David

+0

Non funziona più. –

2

So che è una vecchia domanda ma per me l'url http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com non ha funzionato nelle chiamate ajax a causa di problemi Cross-origin.

Ho risolto il problema con PHP CURL, ho creato un percorso personalizzato e l'ho chiamato tramite 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 
} 

E 'importante utilizzare un POST perchè passsing url in GET problemi richiesta causa.

Spero che abbia aiutato.

+0

Oggi si è appena rotto. –

+0

Sì. Devo trovare un modo alternativo – steo

49

Questo non è più possibile, come da oggi, si può leggere di più qui:

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

E alcuna intenzione di implementare indietro, purtroppo.

Il voto aumenta in modo che gli utenti non perdano tempo a provare.

Aggiornamento: E 'comunque possibile tramite http://opensharecount.com, forniscono un rimpiazzo per il vecchio URL privato JSON in base a ricerche effettuate tramite l'API (quindi non c'è bisogno di fare tutto quel lavoro) .

Si basa sugli endpoint Ricerca API REST. È ancora un nuovo sistema, quindi dovremmo vedere come va. In futuro possiamo aspettarci più sistemi simili, perché c'è una grande richiesta.

+1

Beh, non è ancora sicuro che non lo implementeranno di nuovo. Nei loro ultimi post sui blog, chiedevano dei feedback e menzionavano che potevano accadere di nuovo. Un tizio ha chiesto loro direttamente sul forum di twitter: https://twittercommunity.com/t/equivalent-of-url-count-in-tweets-in-the-near-future/57454 – Anselme

Problemi correlati