2015-08-24 6 views
6

Ho il seguente codice, e non riesco a capire il motivo per cui non sta tornando e la stampa nel corpo HTML ..Come ottenere il conteggio degli URL di Twitter?

var pageURL = document.URL; 
var tweet = "https://cdn.api.twitter.com/1/urls/count.json?url='"+ pageURL + "'"; 

$.getJSON(tweet,function(json){ 
    $('#twitterfeed').html(json.count); 
}); 

<div id="twitterfeed"></div> 

https://cdn.api.twitter.com/1/urls/count.json?url=http://www.google.com

restituisce { "conteggio": 23.844.636 , "url": "http://www.google.com/"}

Quanto segue non sembra funzionare, qualcuno ha qualche idea sul perché?

+0

Il codice JavaScript è prima del codice HTML nello stesso file? – user2182349

+0

Sì, è in alto. – iBrazilian2

+0

Avvolgi in $ (function() {// your code here}); che ritarderà la sua esecuzione fino a quando il DOM non sarà stato caricato e analizzato. – user2182349

risposta

3

Per impostazione predefinita jQuery effettua una richiesta AJAX. Poiché è cross domain e l'intestazione HTTP CORS non è presente nella risposta, fallisce. Aggiungi & callback =? per richiedere l'URL per fare richiesta JSONP

var pageURL = "http://www.google.com"; 
    var urlParams = $.param({ "url": pageURL }); 
    var tweet = "https://cdn.api.twitter.com/1/urls/count.json?"+urlParams; 


    $.ajax(tweet, { "dataType" :"jsonp" }).done(function(json){ 
    $('#twitterfeed').text(json.count); 
    }); 

Demo

http://jsbin.com/tasaloraje/edit?html,output

+0

Tuttavia non sembra funzionare, guarda questo .. http://jsbin.com/yebotuwaya/edit?html,output Ma se rimuovi il "" + pageURL + "" e includi l'URL funziona. Hai qualche idea sul perché? – iBrazilian2

+0

Script modificato aggiungendo un'appropriata codifica URL per l'URL della pagina, utilizzando $ .ajax call con posticipato (come raccomandato dagli sviluppatori jQuery). Controlla jsFiddle –

+0

Perfetto, grazie per l'aiuto. – iBrazilian2

10

A partire dal 20 novembre 2015 non c'è alcuna API conteggio Tweet, quindi non preoccupatevi: https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

+0

Grazie. Secondo la fine del post del blog, forse ci sarà un equivalente nel prossimo futuro? Comunque penso che sia una pessima decisione rimuoverlo. Anche l'API di Facebook ha migliorato questo numero di Mi piace nella sua API. Speriamo che Twitter lo implementerà di nuovo in un modo migliore. "Apprezziamo il tuo feedback negli ultimi 60 giorni su come hai utilizzato questi conteggi e non vedo l'ora di incorporarlo mentre creiamo e miglioriamo gli strumenti per integrare i contenuti di Twitter nelle tue app e nei tuoi siti web". – Anselme

2

https://cdn.api.twitter.com/1/urls/count.json è deprecato.

Dai un'occhiata a http://opensharecount.com per una sostituzione, puoi semplicemente cambiarlo con l'URL indicato lì se ti iscrivi per il tuo dominio.

+0

grazie, bella alternativa, per quanto molto più lenta ...:/ – Anselme

+0

Preferisco lenta ma non funziona più ;-) Ed è solo il conteggio che va lento, la visualizzazione dovrebbe essere veloce dato che stiamo usando una CDN. – user3512969

+0

Grazie, è una buona alternativa, sicuramente, ma limitante in qualche modo: che dire ottenere il numero di tweet per un video di youtube, quando l'url appartiene a youtue.com o ad un nome di dominio esterno? Spero davvero che Twitter fornisca un'alternativa anche se dobbiamo pagare – Anselme

Problemi correlati