• Inspiración
  • Tutoriales
  • Bootcamp

En1Mes

  • Inspiración
  • Tutoriales
  • Bootcamp

Twitter Search API + Ruby on Rails (II parte)

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>&nbsp; <%= 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>

tweets-que-contienen-2-palabras-claves-a-buscar-api-twitter-ruby

 

 

 

 

 

 

 

 

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"> 
      &nbsp; <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.

<p><a href=“<%= tweet.url %>“ class=“” ><%= tweet.text%></a></p>
Un demo del ejemplo está en: http://bringyourcup.herokuapp.com/welcome/index

EJEMPLO #5: BONUS TRACK!

Filtrar un hashtag dinámico con un campo de texto en la home: (screenshoot)
Crear una nueva definicion en Welcome controller
    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

 

(!) Recuerda agregar la nueva ruta welcome/buscarhashtag en Config > Routes.rb
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-->

 

Código fuente disponible Github.

Ruby 2.0 / Rails 4.1.4: Algunos problemas técnicos que puedes tener.

Si después de cargar los ejemplos en localhost:3000 obtienes el siguiente error:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

Revisa mi Artículo SSLError: “certificate verify failed” en localhost

Sep 24, 2014Daniela Gattoni
Share Button
  • El Autor
  • Últimos Posts
Daniela Gattoni

About Daniela Gattoni

Software Engineering Student at USM, Santiago, Chile. Web Designer & programmer. #hack4good Santiago 1st place 2014 with #BringYourCup app.
  • 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
10 years ago 1 Comment Ruby, TutorialesRuby on Rails, twitter api2,517
Twitter Search API + Ruby on RailsDibujando con curvas bezier en HTML5
You Might Also Like
 
Construyendo una landing page en Ruby on Rails desde cero.
 
Tutorial de Infinite Scrolling en Rails
Comments: 0
Pingbacks: 1
  1. Twitter Search API Ruby on Rails
    10 years ago

Leave a Reply Cancel reply

Tags
mostbetslotticamostbet UZslottica PLRuby on Railsaviatoraviator KZozwincasinoozwincasino AUemprendimientos digitalesfortunetiger BRfortunetigerTutorialesDiseñoLondonLondon UZbj88slottica BRHerramientashtml5WordpressrubyLanding Pageparty poker casinogratogana juegos en vivoแทงบอลออนไลน์Bases de datoswash serviceหวยออนไลน์gratogana entrar20bet plkudos casino no deposit bonus 2024kudos casino loginTallereshackathonkudos casino no deposit bonuspartycasino entrarHeroku1win AZ1winTipsPáginas WebNitrousInspiracióncbd
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • Interesado en otros tipos de emprendimiento?

    Quieres aprender a importar y exportar productos a todo el mundo? entra aquí

  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • No te pierdas ningún artículo.

  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • 2016 © En 1 Mes