2011-01-02 2 views
0

Использование jQuery для извлечения твитов в .json. Одна часть моего приложения требует старых твитов, а поиск в twitter возвращает твиты только за последние 6 дней. Эти старые твиты должны содержать определенный хэштег. Я знаю, что метод user_timeline API может возвращать 3200 твитов, но я не могу понять, как получить 3200 твитов, прокрутить их и найти твиты, которые мне нужны. Вот что я есть сейчас:Twitter Поиск В 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"); 
    }) 
}); 

Это все, что нужно, но только в случае необходимости сообщения, где написал в последние 6 дней,

ответ

0

В соответствии с щебет API вы можете получить только 100 результатов на время. Используйте элемент поиска rpp, чтобы запросить 100 и начать на странице 1. Затем вы можете перемещать страницы, получая по 100 предметов за раз. Сделайте это 15 раз, чтобы получить 1500 предметов. Причиной этого является твиттер, который позволяет вам получать последние 15 страниц максимум из 1500 предметов.

Пример:

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

Источник: Twitter API

Смежные вопросы