2011-01-02 8 views
0

Verwenden Sie jQuery, um Tweets in .json abzurufen. Ein Teil meiner Bewerbung benötigt alte Tweets, und Twittersuche gibt Tweets nur für die letzten 6 Tage zurück. Diese alten Tweets müssen bestimmte Hashtags enthalten. Ich weiß, dass user_timeline API-Methode kann 3200 Tweets zurückgeben, aber ich kann nicht verstehen, wie man 3200 Tweets bekommen, durchlaufen sie und finde Tweets, die ich brauche. Hier ist das, was ich habe jetzt:Twitter Suchen In user_timeline.json

function TwitterAPI(){} 
TwitterAPI.Statuses = function Statuses(){} 

TwitterAPI.Statuses.hashed = function(username, hashtag, count, to, callback){ 
    requestURL = "http://search.twitter.com/search.json?q=%23" + hashtag + "&rpp=" + count + "&from=" + username + "&to=" + to + "&callback=?"; 
    //requestURL = "http://otter.topsy.com/search.json?q=from:" + username + "+" + hashtag + "&perpage=1" 
    $.getJSON(requestURL, callback); 
    } 

var user_info = ["name", "birthday", "hobby", "homepage"]; 
    $("#info ul li.userinfo").append('<img src="images/lilspinner.gif" />'); 
    $.each(user_info, function() { 
    var hashtag = this; 
    TwitterAPI.Statuses.hashed("<%= @profile.name %>", hashtag, 1, "twisnt", function(json, status){ 
    var content = ""; 
    $.each(json.results, function(i, info){ 
    text = info.text.replace(/(\#)\w+\b/,"").replace(/(\@)\w+\b/,""); 
    if (hashtag == "homepage") { 
     content = "<a style='display:none' href='"+text+"'>"+text+"</a>"; 
    } 
    else { 
     content = "<span style='display:none'>"+text+"</span>"; 
    }   
    }); 
    $("li#" + hashtag).append(content); 
    $("li#" + hashtag + " img").remove(); 
    $("li#" + hashtag + " *").fadeIn("slow"); 
    }) 
}); 

Es ist alles, was ich brauche, aber nur, wenn Nachrichten erforderlich, in denen in den letzten 6 Tage getwittert,

Antwort

0

auf die Twitter-API Nach können Sie nur 100 Ergebnisse bekommen eine Zeit. Verwenden Sie den Rpp-Sucheintrag, um 100 anzufordern und beginnen Sie auf Seite 1. Dann können Sie Seiten durchlaufen, die jeweils 100 Elemente enthalten. Mache dies 15 Mal, um 1500 Gegenstände zu erhalten. Der Grund dafür ist, dass Twitter nur erlaubt, die letzten 15 Seiten für maximal 1500 Elemente zu erhalten.

Beispiel:

var maxRpp = 100; 

var i; //pages 
for (i = 1;i <= 15; i++) { 
    $.getJSON('http://search.twitter.com/search.json?q=pants&result_type=recent&page=' + i + '&rpp=' + maxRpp + '&callback=?',function(data){ 
      //do thing 
    });  
}; 

Quelle: Twitter API