Статьи

Пример JavaScript Twitter API API

Сегодня я хотел использовать API поиска в Twitter и получить последние 5 твитов с тегом «jquery4u» . Вот как вы можете сделать это сами.

Обновление 09.10.13: API поиска в Твиттере устарело.


демонстрация

JavaScript / JQuery

Здесь мы можем получить доступ к общедоступной ленте из API поиска в Twitter и указать обратный вызов JSON для данных.

Параметры:
q = строка поиска (убедитесь, что она закодирована в uri)
rpp = количество твитов, которые мы хотим получить

//get the JSON data from the Twitter search API $.getJSON("http://search.twitter.com/search.json?q=jquery4u&rpp=5&callback=?", function(data) { //loop the tweets $(data.results).each(function(i,v) { //...see full code below } } 

HTML

CSS

 .twitStream{ font-family: verdana; font-size: 11px; } .twitStream a{ font-family: verdana; font-size: 11px; } .tweet{ display: block; padding: .4em; margin: .4em 0; } .tweet-left{ float: left; margin-right: 1em; } .tweet-left img{ border: 2px solid #000000; } .tweet p.text{ margin: 0; padding: 0; } 

Полный код

Вот полный объект JavaScript для виджета Twitter.

 (function($,W,D) { W.JQUERY4U.TWITTER = { name: "JQUERY4U TWITTER", init: function(wid) { //helper functions String.prototype.linkify=function(){ return this.replace(/[A-Za-z]+://[A-Za-z0-9-_]+.[A-Za-z0-9-_:%&;?/.=]+/g,function(m){ return m.link(m); }); }; String.prototype.linkuser=function(){ return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){ return u.link("http://twitter.com/"+u.replace("@","")); }); }; String.prototype.linktag=function(){ return this.replace(/[]+[A-Za-z0-9-_]+/,function(t){ return t; }); }; //load twitter stylesheet $("head").append(' '); //get the tweets from Twitter API $.getJSON("http://search.twitter.com/search.json?q=jquery4u&rpp=5&callback=?", function(data) { // console.log(data.items.length); $(data.results).each(function(i,v) { var tTime=new Date(Date.parse(this.created_at)); var cTime=new Date(); var sinceMin=Math.round((cTime-tTime)/60000); if(sinceMin==0){ var sinceSec=Math.round((cTime-tTime)/1000); if(sinceSec<10) var since='less than 10 seconds ago'; else if(sinceSec<20) var since='less than 20 seconds ago'; else var since='half a minute ago'; } else if(sinceMin==1){ var sinceSec=Math.round((cTime-tTime)/1000); if(sinceSec==30) var since='half a minute ago'; else if(sinceSec<60) var since='less than a minute ago'; else var since='1 minute ago'; } else if(sinceMin<45) var since=sinceMin+' minutes ago'; else if(sinceMin>44&&sinceMin<60) var since='about 1 hour ago'; else if(sinceMin<1440){ var sinceHr=Math.round(sinceMin/60); if(sinceHr==1) var since='about 1 hour ago'; else var since='about '+sinceHr+' hours ago'; } else if(sinceMin>1439&&sinceMin<2880) var since='1 day ago'; else{ var sinceDay=Math.round(sinceMin/1440); var since=sinceDay+' days ago'; } var tweetBy=' @'+this.from_user+' '+since+' '; tweetBy=tweetBy+' &middot; Reply '; tweetBy=tweetBy+' &middot; View Tweet '; tweetBy=tweetBy+' &middot; RT '; var tweet='  (function($,W,D) { W.JQUERY4U.TWITTER = { name: "JQUERY4U TWITTER", init: function(wid) { //helper functions String.prototype.linkify=function(){ return this.replace(/[A-Za-z]+://[A-Za-z0-9-_]+.[A-Za-z0-9-_:%&;?/.=]+/g,function(m){ return m.link(m); }); }; String.prototype.linkuser=function(){ return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){ return u.link("http://twitter.com/"+u.replace("@","")); }); }; String.prototype.linktag=function(){ return this.replace(/[]+[A-Za-z0-9-_]+/,function(t){ return t; }); }; //load twitter stylesheet $("head").append(' '); //get the tweets from Twitter API $.getJSON("http://search.twitter.com/search.json?q=jquery4u&rpp=5&callback=?", function(data) { // console.log(data.items.length); $(data.results).each(function(i,v) { var tTime=new Date(Date.parse(this.created_at)); var cTime=new Date(); var sinceMin=Math.round((cTime-tTime)/60000); if(sinceMin==0){ var sinceSec=Math.round((cTime-tTime)/1000); if(sinceSec<10) var since='less than 10 seconds ago'; else if(sinceSec<20) var since='less than 20 seconds ago'; else var since='half a minute ago'; } else if(sinceMin==1){ var sinceSec=Math.round((cTime-tTime)/1000); if(sinceSec==30) var since='half a minute ago'; else if(sinceSec<60) var since='less than a minute ago'; else var since='1 minute ago'; } else if(sinceMin<45) var since=sinceMin+' minutes ago'; else if(sinceMin>44&&sinceMin<60) var since='about 1 hour ago'; else if(sinceMin<1440){ var sinceHr=Math.round(sinceMin/60); if(sinceHr==1) var since='about 1 hour ago'; else var since='about '+sinceHr+' hours ago'; } else if(sinceMin>1439&&sinceMin<2880) var since='1 day ago'; else{ var sinceDay=Math.round(sinceMin/1440); var since=sinceDay+' days ago'; } var tweetBy=' @'+this.from_user+' '+since+' '; tweetBy=tweetBy+' &middot; Reply '; tweetBy=tweetBy+' &middot; View Tweet '; tweetBy=tweetBy+' &middot; RT '; var tweet='   «;

                       $ ( "# Твиттер") Append (твит).  // добавить твит ...

                 });
             });
         }
     }

 }) (JQuery, окна, документ); 

использование

Часть приведенного выше кода любезно предоставлена TwitStream . Спасибо ребята.