
Continuando con los ejemplos de Twitter API en Ruby on Rails (parte 1) , aquí puedes encontrar 3 ejemplos más para cerrar el tutorial:
EJEMPLO #3:
Si necesitas buscar tweets que contengan una serie de palabras claves en su texto haces un array de topicos separados por coma y lo evaluas en la consulta. Me he dado cuenta eso si, que no se si es un bug de la API de twitter, pero no hace caso a “no incluir” los retweets. he revisado esta misma duda en los foros de twitter developer, pero no he llegado a una respuesta de por qué a veces no hace caso a la consulta. (tarea para la casa)
def index topics = ["hack4good","hack4goodsantiago"] @search = $client.search(topics.join(","), :include_rts => false).take(3).collect end
En la Vista “index” el loop es el mismo:
<ul class="list-unstyled text-gris small"> <% @search.each do |tweet| %> <li> <span class="glyphicon glyphicon-music text-info"></span> <%= tweet.text%> <span class="text-gris-oscuro"> <%= time_ago_in_words(tweet.created_at) %></span> </li> <% end %> <a href="http://twitter.com/nombredeusuario" title="Twitter"> <%= image_tag("twittericono.png", class:"pull-right") %> </a> </ul>
EJEMPLO #4:
Realizar una búsqueda por ubicación del Usuario. Para obtener las coordenadas Latitud y longitud de algun punto geográfico use ésta página que puede servir.
El atributo geocode(latitud, longitud,radio en kms ó millas) tiene 3 parametros requeridos. aquí puse unas coordenadas aproximadas de Santiago, Chile. y los tweets que resultan de la busqueda deberían un set de registros de Twitteros que coincidan que en su perfil de twitter “tweet. user.location” tienen “Santiago, chile” configurado.
@search = $client.search("reciclaje -rt",:result_type=>'recent',:geocode=>"-33.4691199,-70.641997,100km").take(18).collect
En la View index vamos a cambiar radicalmente el diseño y usaremos Bootstrap 3 y Mansory Gallery para realizar una vista más entretenida
Mostrar Tweets con Bootstrap 3 y Mansory Gallery
<div class="jumbotron"> <div id="container"> <div class="row"> <% @search.each do |tweet| %> <div class="item" style="width:195px; margin:0 auto;"> <div class="thumbnail"> <%= image_tag(tweet.user.profile_image_url("bigger"), class:"pull-left img-circle") %> <div class="caption"> <h3 class="text-right"><%= tweet.user.name %></h3> <p class="small"><%= tweet.user.location %></p> <p><a href="<%= tweet.url %>" class="" > <%= tweet.text%></a> </p> <p> <span class="small text-right"> <%= time_ago_in_words(tweet.created_at) %></span> </p> </div> </div> </div> <!-- //fin .item--> <% end %> </div> </div><!-- //fin de container-->
– Línea 7: ocupamos un helper de ruby “image_tag” para mostrar la imagen grande del perfil del usuario. aplicando al final una class de bootstrap con un efecto de imagen circular.
<%= image_tag(tweet.user.profile_image_url(“bigger”), class:”pull-left img-circle”) %>
– Linea 9: titulo ajustado a la derecha en donde imprime el Nombre real del Usuario. si quieres el “nombre por pantalla” cambia a tweet.user.screen_name
<h3 class=”text-right”><%= tweet.user.name %></h3>
– Línea 10: imprime en un parrafo con texto pequeño la ubicación escrita por el usuario.
<p class=“small”><%= tweet.user.location %></p>
Linea 11, 12,13: Dentro de un Parrafo agregamos un enlace que te llevará a la url del mismo tweet. y dentro de ese enlace tenemos el texto mismo del tweet.
EJEMPLO #5: BONUS TRACK!
def buscarhashtag if request.GET.include? "q" topics =[params[:q]] @search = $client.search(topics.join(","),:result_type => "recent", :include_rts => 0,:exclude_replies => 0, :count=>12).take(12).collect end end
Rails.application.routes.draw do # The priority is based upon order of creation: first created -> highest priority. # See how all your routes lay out with "rake routes". get 'welcome/buscarhashtag' get 'welcome/index' # You can have the root of your site routed with "root" root 'welcome#index' end
Y ahora sí, creamos una nueva Vista en: proyecto > app > views > welcome >buscarhashtag.html.erb
<!-- aqui solo cargamos cosas que iran dentro del body--> <div class="jumbotron"> <div class="container"> <div class="row"> <form class="form-horizontal" role="form"> <div class="form-group"> <div class="col-sm-4"> <input name="q" type="text" class="form-control input-sm pull-left" id="q" placeholder="buscar hashtag"> <button type="submit" class="btn btn-info btn-sm pull-right">Buscar</button> </div> </div> </form> </div><!-- /form buscar por hashtag--> </div> <div id="container"> <div class="row"> <% if request.GET.include? "q" %> <% @search.each do |tweet| %> <div class="item" style="width:195px; margin:0 auto;"> <div class="thumbnail"> <%= image_tag(tweet.user.profile_image_url("bigger"), class:"pull-left img-circle") %> <div class="caption"> <h3 class="text-right"><%= tweet.user.name %></h3> <p class="small"><%= tweet.user.location %></p> <p><a href="<%= tweet.url %>" class="" > <%= tweet.text%></a> </p> <p> <span class="small text-right"> <%= time_ago_in_words(tweet.created_at) %></span> </p> </div> </div> </div> <!-- //fin .item--> <% end %> <% else %> <div class="col-lg-12"> <p class="text-info ">Qué Quieres buscar?</p> </div> <% end %><!-- //end if--> </div><!-- /.row--> </div><!-- //fin de container--> </div><!-- //fin de Jumbotron-->
Ruby 2.0 / Rails 4.1.4: Algunos problemas técnicos que puedes tener.
Revisa mi Artículo SSLError: “certificate verify failed” en localhost

- Friendly URL en Rails - March 8, 2015
- Borrar un Scaffold en Ruby on Rails - January 24, 2015
- “My Concerts Wishlist” ajax scaffold Ruby on Rails - January 1, 2015
- StreetmusicMap parte 2: Integración Gmaps4Rails - December 12, 2014
- StreetmusicMap parte 1: Combobox uno a muchos en Ruby on Rails - December 11, 2014
- Twitter Search API + Ruby on Rails (II parte) - September 24, 2014
- Twitter Search API + Ruby on Rails - September 24, 2014
- SSL error: Certificate Verify Failed - September 18, 2014