2008-10-15 43 views
6

我想使用API​​來返回與我的搜索查詢相匹配的所有推文,但只能發佈最近5秒內發佈的推文。如何使用Twitter搜索API返回與我的搜索查詢相匹配的所有推文,只發布在最近五秒內?

通過Twitter的搜索API,我可以使用since_id從特定ID中獲取所有推文。但是,我無法真正看到從頭開始查找推特ID的好方法。

我也知道你可以在實際查詢中使用「since:」來使用日期,但是你不能輸入時間。

有人可以使用Twitter API經驗爲我提供任何建議嗎?感謝您的閱讀和您的時間!

http://apiwiki.twitter.com/Search-API-Documentation

回答

4

這聽起來像您可以在您的結尾做的事情,因爲created_at是結果集中返回的字段之一。只要做你的查詢,並只使用最近5秒內的那些。

0

你是想查詢實時的鳴叫?不要推特在API req/hour上有限制。我想你會打得很快。

+0

不爲搜索API。沒有費率限制。我想每五秒鐘輪詢一次最佳推文。 – rmh 2008-10-15 20:09:50

+0

搜索API的速率限制,但沒有人知道它們是什麼。我認爲只要你沒有進行多個併發API請求,5秒也沒關係。 – 2009-10-05 10:03:28

0

你爲什麼不每隔5秒就給API打一次電話,並獲得最高的1條推文。

2
 <script type="text/javascript" charset="utf-8"> 
    // JavaScript Document 
    $(document).ready(function(){ 

    // start twitter API  
    $.getJSON('http://twitter.com/status/user_timeline/YOUR_NAME.json?count=10&callback=?', function(data){ 
     $.each(data, function(index, item){ 
      $('#twitter').append('<div class="tweet"><p>' + item.text.linkify() + '</p><p><strong>' + relative_time(item.created_at) + '</strong></p></div>'); 
     }); 

    }); 


    function relative_time(time_value) { 
     var values = time_value.split(" "); 
     time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3]; 
     var parsed_date = Date.parse(time_value); 
     var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); 
     var delta = parseInt((relative_to.getTime() - parsed_date)/1000); 
     delta = delta + (relative_to.getTimezoneOffset() * 60); 

     var r = ''; 
     if (delta < 60) { 
     r = 'a minute ago'; 
     } else if(delta < 120) { 
     r = 'couple of minutes ago'; 
     } else if(delta < (45*60)) { 
     r = (parseInt(delta/60)).toString() + ' minutes ago'; 
     } else if(delta < (90*60)) { 
     r = 'an hour ago'; 
     } else if(delta < (24*60*60)) { 
     r = '' + (parseInt(delta/3600)).toString() + ' hours ago'; 
     } else if(delta < (48*60*60)) { 
     r = '1 day ago'; 
     } else { 
     r = (parseInt(delta/86400)).toString() + ' days ago'; 
     } 

     return r; 
    } 

    String.prototype.linkify = function() { 
     return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) { 
      return m.link(m); 
     }); 
    };// end twitter API 




}); // ***** end functions ***** 
    </script> 

      <div id="twitter"> 
    Target Div      

    </div> 
0

Twitter API結果按默認最近排序。請參閱從Twitter維基以下報價:

參數Twitter搜索API:

result_type的:可選。指定您希望接收哪種類型的搜索結果。

* Valid values include: 


     o mixed: In a future release this will become the default value. Include both popular and real time results in the response. 
     o recent: The current default value. Return only the most recent results in the response. 
     o popular: Return only the most popular results in the response. 
* Example: http://search.twitter.com/search.atom?q=Twitter&result_type=mixed 
* Example: http://search.twitter.com/search.json?q=twitterapi&result_type=popular 
* Example: http://search.twitter.com/search.atom?q=justin+bieber&result_type=recent 

請糾正我,如果我錯了任何地方。

感謝和問候,
阿沛丹德卡爾