2011-01-02 4 views
0

J'utilise jQuery pour récupérer des tweets dans .json. Une partie de mon application nécessite de vieux tweets, et la recherche sur Twitter ne renvoie les tweets que pour les 6 derniers jours. Ce vieux tweets doit contenir un certain hashtag. Je sais que la méthode de l'API user_timeline peut renvoyer 3200 tweets, mais je ne comprends pas comment obtenir 3200 tweets, les parcourir et trouver les tweets dont j'ai besoin. Voici ce que j'ai pour l'instant:Twitter Rechercher dans 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"); 
    }) 
}); 

Il fait tout ce qu'il me faut, mais seulement en cas de besoin des messages où tweeté dans les 6 derniers jours,

Répondre

0

Selon l'API twitter vous ne pouvez obtenir 100 résultats à une fois. Utilisez l'élément de recherche rpp pour demander 100 et commencer à la page 1. Ensuite, vous pouvez parcourir les pages en obtenant 100 éléments à la fois. Faites ceci 15 fois pour obtenir 1500 articles. La raison en est que Twitter vous permet seulement d'obtenir les 15 dernières pages pour un maximum de 1500 articles.

Exemple:

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

Source: Twitter API

Questions connexes