/ / Problem z zapytaniem do twittera jQuery JSONP - php, javascript, jquery, api, jsonp

Problem z zapytaniem do twittera jQuery JSONP - php, javascript, jquery, api, jsonp

Mam problemy z prawidłowym pobraniem danych z serwisu Twitter za pomocĘ ... jsonp search.json.

Kiedy pobierasz dane tylko raz, działa to doskonale z tym fragmentem kodu:

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]);
}
}

Ale kiedy próbuję następnie odświeżyć te dane co xx sekund, używając setInterval:

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

To niestety nie działa. Mam ten błąd:

NOT_FOUND_ERR: DOM Exception 8: An podjęto próbę odniesienia się do węzła w kontekście, w którym nie istnieje.

zasadniczo, mam to za każdym razem, gdy próbuję wywołać moją funkcję getTweets () wewnątrz innej funkcji ... :(

Inne rozwiązanie, które wypróbowałem:

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"
});
}

W ten sposób działa on idealnie z moim własnym apletem jsonp na innym serwerze, ale Twitter zwraca mi dwukrotnie moje wywołanie zwrotne:

tw_callback (tw_callback ({wyniki ...

A ciąg jsonp nie jest interpretowany ...

Jakaś wskazówka na ten temat, jakaś podpowiedź?

Wielkie dzięki!

Odpowiedzi:

1 dla odpowiedzi № 1

Spróbuj przepisać swoją funkcję w następujący, bardziej prosty sposób.

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]);
}
}
});
}