web-dev-qa-db-fra.com

Est-il possible d'obtenir le nombre de partages Twitter pour une URL spécifique?

J'ai parcouru la documentation de l'API mais je ne l'ai pas trouvée. Ce serait bien de saisir ce nombre pour voir à quel point une URL est populaire. Engadget utilise le bouton de partage Twitter sur les articles si vous cherchez un exemple. J'essaie de faire cela avec javascript. Toute aide est appréciée.

33
Xavier

Non.

Comment puis-je accéder à l'API de comptage pour savoir combien de tweets mon URL a eu?

À ce stade précoce du bouton Tweet, l’API de comptage est privée. Cela signifie que vous devez utiliser notre bouton Tweet javascript ou iframe pour pouvoir rendre le décompte. À mesure que nos systèmes évoluent, nous chercherons à rendre publique le nombre d’API que les développeurs pourront utiliser.

http://dev.Twitter.com/pages/Tweet_button_faq#custom-shortener-count

4
André Paramés

Vous pouvez utiliser le point de terminaison API suivant,

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

Notez que le point final http://urls.api.Twitter.com/ est not public .)

Le noeud final renverra une chaîne JSON semblable à,

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

Sur le client, si vous demandez le nombre de partages d'URL de votre propre domaine (celui depuis lequel le script est exécuté), une demande AJAX fonctionnera (par exemple, jQuery.getJSON ). Sinon, émettez une demande JSONP en ajoutant 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>

Mettre à jour:

À compter du 21 novembre 2015, cette façon d'obtenir le nombre de partages sur Twitter ne fonctionne plus. En savoir plus sur: https://blog.Twitter.com/2015/hard-decisions-for-a-sustainable-platform

78
user799188

Ce n'est plus possible à partir d'aujourd'hui, vous pouvez en lire plus ici:

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

Et aucun projet de le mettre en œuvre, malheureusement. 

Vote positif pour que les utilisateurs ne perdent pas de temps à essayer.

Update: Il est cependant possible via http://opensharecount.com , ils fournissent un remplacement instantané de l'ancienne URL JSON privée en fonction des recherches effectuées via pas besoin de faire tout ce travail).

Il est basé sur les points de terminaison REST API Search. Son système toujours nouveau, nous devrions donc voir comment ça se passe. À l'avenir, nous pouvons nous attendre à davantage de systèmes similaires, car la demande est énorme.

51
Goran Jakovljevic

c'est pour url avec https (pour Brodie) https://cdn.api.Twitter.com/1/urls/count.json?url=YOUR_URL

5
Mada Aryakusumah

Oui, 

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

Remplacez " http://www.web-technology-experts-notes.in " par "l'URL de votre page Web complète".

Vérifiez le nombre de partages de Facebook, Twitter, LinkedIn et Pinterest.

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

Mise à jour: À compter du 21 novembre 2015, Twitter a supprimé l'API "Tweet count endpoint".

Lire la suite: https://Twitter.com/twitterdev/status/667836799897591808

4
Poonam Gupta

La réponse approuvée est la bonne. Il existe d'autres versions du même terminal, utilisées en interne par Twitter.

Par exemple, le bouton de partage officiel avec nombre utilise celui-ci:

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

Le support JSONP ajoute-t-il &callback=func.

2
mcont

Je sais que c’est une vieille question, mais pour moi, l’url http://cdn.api.Twitter.com/1/urls/count.json?url=http://stackoverflow.com ne fonctionnait pas dans les appels ajax en raison de problèmes liés à Cross-Origin

J'ai résolu avec PHP CURL, j'ai créé un chemin personnalisé et je l'ai appelé via 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
}

Il est important d’utiliser une variable POST car la transmission de la demande url dans la demande GET cause des problèmes. 

J'espère que ça a aidé.

2
steo

De cette façon, vous pouvez l'obtenir avec jQuery. Le div id = "twitterCount" sera automatiquement rempli lorsque la page sera chargée.


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

À votre santé!

1
Cassio Seffrin

Oui il y a. Tant que vous faites ce qui suit:

  1. Émettez a JSONP request à l'une des 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. Assurez-vous que la demande que vous faites provient du même domaine que le [URL_IN_REQUEST]. Sinon, cela ne fonctionnera pas.

    Exemple:

    Demander à partir de example.com de demander le nombre de example.com/page/1. Devrait marcher.

    Demander à partir de another-example.com de demander le nombre de example.com/page/1. Ne fonctionnera pas.

1
Muhammad Reda

Ce commentaire https://stackoverflow.com/a/8641185/1118419 propose d'utiliser l'API Topsy. Je ne suis pas sûr que l'API est correcte:

Réponse Twitter pour www.e-conomic.dk:

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

montre 10 fois

Réponse de Topsy sur www.e-conomic.dk:

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

18 points

1
Andriy Kuba

Je viens de lire le contenu dans un objet JSON via php, puis l'analyser ..

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

Assez simple, et cela répond parfaitement à mes besoins.

0
TiKi

Cette classe Javascript vous permettra de partager des informations partagées sur Facebook, Twitter et LinkedIn.

Exemple d'utilisation

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

Télécharger

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

Plus d'exemples et de documentation

Classe Javascript pour obtenir des partages d'URL sur Facebook, Twitter et LinkedIn

0
PerKristian