Class: TwitterUtil

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter_util.rb

Overview

Synopsis

Clase que provee metodos (estaticos) de consulta basicos a twitter.

Usage

require 'twitter_util'
trends = TwitterUtil.get_trends()
status = TwitterUtil.get_status('wryanez')
result = TwitterUtil.search_tweets('from:wryanez ruby')
timeline = TwitterUtil.get_user_timeline('wryanez')
followers = TwitterUtil.get_followers('wryanez')
followings = TwitterUtil.get_following('wryanez')
users=TwitterUtil.get_users_lookup(arr_ids)

Author

William Yanez (wyanez@gmail.com)

Constant Summary collapse

URL_TWITTER_API =
"http://api.twitter.com/1"
URL_TWITTER_SEARCH =
"http://search.twitter.com/search.json"

Class Method Summary collapse

Class Method Details

.get_followers(usuario, cursor = -1)) ⇒ Object

Retorna un arreglo con los ids de seguidores del usuario indicado



88
89
90
91
92
93
94
# File 'lib/twitter_util.rb', line 88

def self.get_followers(usuario,cursor=-1)
    url="#{URL_TWITTER_API}/followers/ids.json"               
    url =url+"?screen_name="+URI.escape(usuario)
    url=url+"&cursor=#{cursor}" if cursor>1
    result =get_twitter_data(url)
    return result 
end

.get_following(usuario, cursor = -1)) ⇒ Object

Retorna un arreglo con los ids de los usuarios que sigue el usuario indicado



99
100
101
102
103
104
105
# File 'lib/twitter_util.rb', line 99

def self.get_following(usuario,cursor=-1)
    url="#{URL_TWITTER_API}/friends/ids.json"               
    url =url+"?screen_name="+URI.escape(usuario)
    url=url+"&cursor=#{cursor}" if cursor>1
    result =get_twitter_data(url)
    return result 
end

.get_status(usuario) ⇒ Object

Retorna un hash con el status actual (ultimo tweet, followers, etc…) del usuario indicado.

  • Algunos campos son: screen_name,description,location,created_at,url,followers_count,statuses_count (Nro de tweets)

  • El ultimo tweet se puede acceder con el campo status y es un hash con los campos: text,created_at,source



48
49
50
51
52
# File 'lib/twitter_util.rb', line 48

def self.get_status(usuario)
    url="#{URL_TWITTER_API}/users/show/#{usuario}.json"				
    result =get_twitter_data(url)
    return result 
end

retorna un hash de hashes de los trends dependiendo del parametro momento:

  • ‘current’: trends del momento actual (debe estar autenticado el usuario)

  • ‘daily’: trends de cada hora del dia

  • ‘weekly’: trends de cada dia de la semana



34
35
36
37
38
39
40
# File 'lib/twitter_util.rb', line 34

def self.get_trends(momento='daily')
    trends=nil
    url = "#{URL_TWITTER_API}/trends/#{momento}.json"
    result =get_twitter_data(url)
    trends = result['trends'] unless result.nil?			
    return trends 
end

.get_user_timeline(usuario) ⇒ Object

Retorna un arreglo con los tweets mas recientes del timeline del usuario indicado



78
79
80
81
82
83
# File 'lib/twitter_util.rb', line 78

def self.get_user_timeline(usuario)
    url="#{URL_TWITTER_API}/statuses/user_timeline.json"               
    url =url+"?screen_name="+URI.escape(usuario)
    result =get_twitter_data(url)
    return result 
end

.get_users_lookup(arr_ids) ⇒ Object

Retorna un arreglo con los información de los usuarios indicados en el arreglo de ids dado



110
111
112
113
114
115
# File 'lib/twitter_util.rb', line 110

def self.get_users_lookup(arr_ids)
    str_ids=arr_ids.join(',')
    url="#{URL_TWITTER_API}/users/lookup.json?user_id="+str_ids
    result =get_twitter_data(url)
    return result 
end

.search_tweets(query, page = 1) ⇒ Object

retorna un arreglo con los tweets que cumplen con el criterio de busqueda dado en query. El query es un string con cada uno de los parametros de busquedas separados por un espacio en blanco. Ej: query=“from:wryanez ruby”

Cada tweet es un hash. Algunos campos utiles son:

  • text : contenido del tweet

  • from_user : Usuario que envia el tweet

  • created_at: fecha del tweet



64
65
66
67
68
69
70
71
72
73
# File 'lib/twitter_util.rb', line 64

def self.search_tweets(query,page=1)
    return Array.new if query.empty?
    
    query="q="+query 
    url=URL_TWITTER_SEARCH+"?"+URI.escape(query)
    url=url+"&page=#{page}" if page>1
    
    result =get_twitter_data(url)
    return result["results"]
end