[~/local/src/ruby/rubytesting/twitter-test(master)]$ pry [1] pry(main)> require "twitter" => true [3] pry(main)> require "./configure" => trueVeanse en la sección 8.15 los contenidos del fichero
configure.rb
[4] pry(main)> Twitter.user_timeline("timoreilly").first
=> #<Twitter::Tweet:0x007fd824025c70
@attrs=
{:created_at=>"Wed Sep 18 01:08:06 +0000 2013",
:id=>380136112389234690,
:id_str=>"380136112389234690",
:text=>
"@isaiah_saxon_ If you want an intro to the folks there, I'd be glad to make it.",
:source=>
"<a href=\"http://www.tweetdeck.com\" rel=\"nofollow\">TweetDeck</a>",
:truncated=>false,
:in_reply_to_status_id=>380135816275578881,
:in_reply_to_status_id_str=>"380135816275578881",
:in_reply_to_user_id=>432803063,
:in_reply_to_user_id_str=>"432803063",
:in_reply_to_screen_name=>"isaiah_saxon_",
:user=>
{:id=>2384071,
:id_str=>"2384071",
:name=>"Tim O'Reilly",
:screen_name=>"timoreilly",
:location=>"Sebastopol, CA",
:description=>
"Founder and CEO, O'Reilly Media. Watching the alpha geeks, sharing their stories, helping the future u
:url=>"http://t.co/5086iX7oyT",
:entities=>
{:url=>
{:urls=>
[{:url=>"http://t.co/5086iX7oyT",
:expanded_url=>"http://radar.oreilly.com",
:display_url=>"radar.oreilly.com",
:indices=>[0, 22]}]},
:description=>{:urls=>[]}},
:protected=>false,
:followers_count=>1723740,
:friends_count=>1105,
:listed_count=>25791,
:created_at=>"Tue Mar 27 01:14:05 +0000 2007",
:favourites_count=>143,
:utc_offset=>-25200,
:time_zone=>"Pacific Time (US & Canada)",
:geo_enabled=>true,
:verified=>true,
:statuses_count=>27026,
:lang=>"en",
:contributors_enabled=>false,
:is_translator=>false,
:profile_background_color=>"9AE4E8",
:profile_background_image_url=>
"http://a0.twimg.com/profile_background_images/3587880/notes.gif",
:profile_background_image_url_https=>
"https://si0.twimg.com/profile_background_images/3587880/notes.gif",
:profile_background_tile=>false,
:profile_image_url=>
"http://a0.twimg.com/profile_images/2823681988/f4f6f2bed8ab4d5a48dea4b9ea85d5f1_normal.jpeg",
:profile_image_url_https=>
"https://si0.twimg.com/profile_images/2823681988/f4f6f2bed8ab4d5a48dea4b9ea85d5f1_normal.jpeg",
:profile_link_color=>"0000FF",
:profile_sidebar_border_color=>"87BC44",
:profile_sidebar_fill_color=>"E0FF92",
:profile_text_color=>"000000",
:profile_use_background_image=>true,
:default_profile=>false,
:default_profile_image=>false,
:following=>nil,
:follow_request_sent=>false,
:notifications=>nil},
:geo=>nil,
:coordinates=>nil,
:place=>nil,
:contributors=>nil,
:retweet_count=>0,
:favorite_count=>0,
:entities=>
{:hashtags=>[],
:symbols=>[],
:urls=>[],
:user_mentions=>
[{:screen_name=>"isaiah_saxon_",
:name=>"Isaiah Saxon",
:id=>432803063,
:id_str=>"432803063",
:indices=>[0, 14]}]},
:favorited=>false,
:retweeted=>false,
... etc., etc.
:profile_sidebar_border_color=>"87BC44",
:profile_sidebar_fill_color=>"E0FF92",
:profile_text_color=>"000000",
:profile_use_background_image=>true,
:default_profile=>false,
:default_profile_image=>false,
:following=>nil,
:follow_request_sent=>false,
:notifications=>nil},
:geo=>nil,
:coordinates=>nil,
:place=>nil,
:contributors=>nil,
:retweet_count=>0,
:favorite_count=>0,
:entities=>
{:hashtags=>[],
:symbols=>[],
:urls=>[],
:user_mentions=>
[{:screen_name=>"isaiah_saxon_",
:name=>"Isaiah Saxon",
:id=>432803063,
:id_str=>"432803063",
:indices=>[0, 14]}]},
:favorited=>false,
:retweeted=>false,
:lang=>"en"}>
[5] pry(main)> Twitter.user("timoreilly").location
=> "Sebastopol, CA"
[10] pry(main)> Twitter.search("#ruby -rt", :lang => "es", :count => 1)
=> #<Twitter::SearchResults:0x007fd8249c2d50
@attrs=
{:statuses=>
[{:metadata=>{:result_type=>"recent", :iso_language_code=>"es"},
:created_at=>"Wed Sep 18 07:15:41 +0000 2013",
:id=>380228616136556544,
:id_str=>"380228616136556544",
:text=>"Uf mucho mas :) #Ruby.",
:source=>"web",
:truncated=>false,
:in_reply_to_status_id=>nil,
:in_reply_to_status_id_str=>nil,
:in_reply_to_user_id=>nil,
:in_reply_to_user_id_str=>nil,
:in_reply_to_screen_name=>nil,
:user=>
{:id=>1476069577,
:id_str=>"1476069577",
:name=>"Teresa Bautista",
:screen_name=>"teressabautista",
:location=>"Obregón, Sonora",
:description=>
"no tengo idea si voy a volver a verte, pero por lo pronto contenta de conocerte",
:url=>nil,
:entities=>{:description=>{:urls=>[]}},
:protected=>false,
:followers_count=>21,
:friends_count=>21,
... etc, etc.
[11] pry(main)> Twitter.search("#ruby -rt", :lang => "es", :count => 1).results.first.text
=> "Uf mucho mas :) #Ruby."
[12] pry(main)> Twitter.search("#ruby -rt", :lang => "es", :count => 1).results.first.to_s
=> "#<Twitter::Tweet:0x007fd825070828>"
Véase la documentación en
Twitter::API::Search.
Para ver como usar la API de búsqueda de Twitter véanse
Hay un número de operadores que podemos usar en nuestra query:
| Example | Finds tweets... |
| twitter search | containing both "twitter" and "search". This is the default operator |
| "happy hour" | containing the exact phrase "happy hour" |
| love OR hate | containing either "love" or "hate" (or both) |
| beer -root | containing "beer" but not "root" |
| #haiku | containing the hashtag "haiku" |
| from:twitterapi | sent from the user @twitterapi |
| to:twitterapi | sent to the user @twitterapi |
| place:opentable:2 | about the place with OpenTable ID 2 |
| place:247f43d441defc03 | about the place with Twitter ID 247f43d441defc03 |
| @twitterapi | mentioning @twitterapi |
| superhero since:2011-05-09 | containing "superhero" and sent since date "2011-05-09" (year-month-day). |
| twitterapi until:2011-05-09 | containing "twitterapi" and sent before the date "2011-05-09". |
| movie -scary :) | containing "movie", but not "scary", and with a positive attitude. |
| flight :( | containing "flight" and with a negative attitude. |
| traffic ? | containing "traffic" and asking a question. |
| hilarious filter:links | containing "hilarious" and with a URL. |
| news source:tweet_button | containing "news" and entered via the Tweet Button |
Anatomía de un usuario Twitter
[13] pry(main)> Twitter.user('timoreilly')
=> #<Twitter::User:0x007fd8260c1448
@attrs=
{:id=>2384071,
:id_str=>"2384071",
:name=>"Tim O'Reilly",
:screen_name=>"timoreilly",
:location=>"Sebastopol, CA",
:description=>
"Founder and CEO, O'Reilly Media. Watching the alpha geeks, sharing their stories, helping the future unf
:url=>"http://t.co/5086iX7oyT",
:entities=>
{:url=>
{:urls=>
[{:url=>"http://t.co/5086iX7oyT",
:expanded_url=>"http://radar.oreilly.com",
:display_url=>"radar.oreilly.com",
:indices=>[0, 22]}]},
:description=>{:urls=>[]}},
:protected=>false,
:followers_count=>1723753,
:friends_count=>1105,
:listed_count=>25791,
:created_at=>"Tue Mar 27 01:14:05 +0000 2007",
:favourites_count=>143,
:utc_offset=>-25200,
:time_zone=>"Pacific Time (US & Canada)",
:geo_enabled=>true,
:verified=>true,
:statuses_count=>27026,
:lang=>"en",
:status=>
{:created_at=>"Wed Sep 18 01:08:06 +0000 2013",
:id=>380136112389234690,
:id_str=>"380136112389234690",
:text=>
"@isaiah_saxon_ If you want an intro to the folks there, I'd be glad to make it.",
:source=>
"<a href=\"http://www.tweetdeck.com\" rel=\"nofollow\">TweetDeck</a>",
:truncated=>false,
:in_reply_to_status_id=>380135816275578881,
:in_reply_to_status_id_str=>"380135816275578881",
:in_reply_to_user_id=>432803063,
:in_reply_to_user_id_str=>"432803063",
:in_reply_to_screen_name=>"isaiah_saxon_",
:geo=>nil,
:coordinates=>nil,
:place=>nil,
:contributors=>nil,
:retweet_count=>0,
:favorite_count=>0,
:entities=>
{:hashtags=>[],
:symbols=>[],
:urls=>[],
:user_mentions=>
[{:screen_name=>"isaiah_saxon_",
:name=>"Isaiah Saxon",
:id=>432803063,
:id_str=>"432803063",
:indices=>[0, 14]}]},
:favorited=>false,
:retweeted=>false,
:lang=>"en"},
:contributors_enabled=>false,
:is_translator=>false,
:profile_background_color=>"9AE4E8",
:profile_background_image_url=>
"http://a0.twimg.com/profile_background_images/3587880/notes.gif",
:profile_background_image_url_https=>
"https://si0.twimg.com/profile_background_images/3587880/notes.gif",
:profile_background_tile=>false,
:profile_image_url=>
"http://a0.twimg.com/profile_images/2823681988/f4f6f2bed8ab4d5a48dea4b9ea85d5f1_normal.jpeg",
:profile_image_url_https=>
"https://si0.twimg.com/profile_images/2823681988/f4f6f2bed8ab4d5a48dea4b9ea85d5f1_normal.jpeg",
:profile_link_color=>"0000FF",
:profile_sidebar_border_color=>"87BC44",
:profile_sidebar_fill_color=>"E0FF92",
:profile_text_color=>"000000",
:profile_use_background_image=>true,
:default_profile=>false,
:default_profile_image=>false,
:following=>true,
:follow_request_sent=>false,
:notifications=>false}>