/ / Problema con la richiesta di ricerca jQuery JSONP su Twitter - php, javascript, jquery, api, jsonp

Problema con la richiesta di ricerca twitter di jQuery JSONP - php, javascript, jquery, api, jsonp

Sto avendo qualche difficoltà a recuperare correttamente i dati di Twitter usando jsonp search.json.

Quando recupero i dati solo una volta, funziona perfettamente con questo pezzo di codice:

function getTweets(){
$.ajax({
url: "http://search.twitter.com/search.json",
type: "GET",
dataType: "jsonp",
jsonpCallback: "tw_callback",
data: "q=<?php echo urlencode($twitter_search); ?>+-RT&rpp=100"
});
}

function tw_callback(jsonp){
for( key in jsonp["results"] ) {
var tweet = jsonp["results"][key]["text"] ;
var from = jsonp["results"][key]["from_user"];
var avatar = jsonp["results"][key]["profile_image_url"];

tw_container.push([tweet,from,avatar]);
}
}

Ma quando provo quindi ad aggiornare questi dati ogni xx secondi, usando setInterval:

setInterval(function () { getTweets(); }, 1000*interval_tourniquet);

Purtroppo non funziona. Sto avendo questo errore:

NOT_FOUND_ERR: DOM Eccezione 8: An si è tentato di fare riferimento a un nodo in un contesto in cui non esiste.

fondamentalmente, ho capito ogni volta che provo a chiamare la mia funzione getTweets () all'interno di un'altra funzione ... :(

Un'altra soluzione che ho provato:

function getTweets(){
$.ajax({
url: "http://search.twitter.com/search.json",
type: "GET",
dataType: "jsonp",
data: "callback=tw_callback&q=<?php echo urlencode($twitter_search); ?>+-RT&rpp=100"
});
}

In questo modo funziona perfettamente con il mio jsonp api su un altro server, ma Twitter mi restituisce il mio callback due volte:

tw_callback (tw_callback ({risultati ...

E la stringa jsonp non è interpretata ..

Qualche idea su questo, qualche suggerimento?

Grazie mille!

risposte:

1 per risposta № 1

Prova a riscrivere la tua funzione con il seguente, più semplice, modo.

function getTweets(){
$.ajax({
url: "http://search.twitter.com/search.json?q=<?php echo urlencode($twitter_search); ?>&rpp=100&callback=?",
dataType: "jsonp",
success: function(){

for( key in jsonp["results"] ) {
var tweet = jsonp["results"][key]["text"] ;
var from = jsonp["results"][key]["from_user"];
var avatar = jsonp["results"][key]["profile_image_url"];

tw_container.push([tweet,from,avatar]);
}
}
});
}