t.coの伸張後URLは含まれてた

注意:Twitter gemのバージョンが5未満の設定ですので、5以上だと以下の手順は無効ですゴメンナサイ

Twitter APIのhome_timelineやmentions_timelineのオプションで”include_entities”を真にすると、tcoで短縮される前のURLを取得することができます。
Twitterで発言中のt.co短縮URLを展開する。 – return $lock;

ということは、わざわざlongurlとかで伸張しなくてもよかったのね…orz

確認

twitter gemを使ったruby一行野郎を環境変数を使って改良 - 別館 子子子子子子(ねこのここねこ)
の設定を用いてTwitter gemを使って

このツイートを取得してみます。

ツイート本文
pry(main)> eval(ENV["TW"]).statuses(383794792125054976, include_entities:true)[0].attrs[:text]
=> "なんだかすごい。|潮騒のメモリーズ〜第二章〜|北三陸市観光協会ホームページ -動画- http://t.co/kOHZsMhMQa チーフ演出・井上剛 インタビュー 後編|NHK連続テレビ小説「あまちゃん」 http://t.co/ffIGUE4I7J"
メッセージ全体
pry(main)> eval(ENV["TW"]).statuses(383794792125054976, include_entities:true)[0]
#<Twitter::Tweet:0x00000100c0b858
 @attrs=
  {:created_at=>"Sat Sep 28 03:26:23 +0000 2013",
   :id=>383794792125054976,
   :id_str=>"383794792125054976",
   :text=>
    "なんだかすごい。|潮騒のメモリーズ〜第二章〜|北三陸市観光協会ホームページ -動画- http://t.co/kOHZsMhMQa チーフ演出・井上剛 インタビュー 後編|NHK連続テレビ小説「あまちゃん」 http://t.co/ffIGUE4I7J",
   :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=>56997313,
     :id_str=>"56997313",
     :name=>"riocampos(りおかんぽす)",
     :screen_name=>"riocampos",
     :location=>"Osaka, Japan",
     :description=>
      "plz call me rio☆ favorite: cycle road race & figure skate, Mac!, iPhone!, Ruby, Fine-Art, Science, Black/Green Tea. | Gender:♂ facebook: http://t.co/uP8O6PBYoU",
     :url=>"http://t.co/5yB3nIR3VQ",
     :entities=>
      {:url=>
        {:urls=>
          [{:url=>"http://t.co/5yB3nIR3VQ",
            :expanded_url=>"http://about.me/riocampos",
            :display_url=>"about.me/riocampos",
            :indices=>[0, 22]}]},
       :description=>
        {:urls=>
          [{:url=>"http://t.co/uP8O6PBYoU",
            :expanded_url=>"http://on.fb.me/MvEV7P",
            :display_url=>"on.fb.me/MvEV7P",
            :indices=>[137, 159]}]}},
     :protected=>false,
     :followers_count=>2065,
     :friends_count=>2272,
     :listed_count=>191,
     :created_at=>"Wed Jul 15 12:02:35 +0000 2009",
     :favourites_count=>2774,
     :utc_offset=>32400,
     :time_zone=>"Osaka",
     :geo_enabled=>true,
     :verified=>false,
     :statuses_count=>145180,
     :lang=>"en",
     :contributors_enabled=>false,
     :is_translator=>false,
     :profile_background_color=>"48E0B7",
     :profile_background_image_url=>
      "http://a0.twimg.com/profile_background_images/378800000082624100/a9d78e9000222c969e9cd8d03573f25b.jpeg",
     :profile_background_image_url_https=>
      "https://si0.twimg.com/profile_background_images/378800000082624100/a9d78e9000222c969e9cd8d03573f25b.jpeg",
     :profile_background_tile=>true,
     :profile_image_url=>
      "http://a0.twimg.com/profile_images/3462273402/f331afb1b57c7d39688229e86de95881_normal.jpeg",
     :profile_image_url_https=>
      "https://si0.twimg.com/profile_images/3462273402/f331afb1b57c7d39688229e86de95881_normal.jpeg",
     :profile_banner_url=>
      "https://pbs.twimg.com/profile_banners/56997313/1365179721",
     :profile_link_color=>"009999",
     :profile_sidebar_border_color=>"FFFFFF",
     :profile_sidebar_fill_color=>"EFEFEF",
     :profile_text_color=>"333333",
     :profile_use_background_image=>true,
     :default_profile=>false,
     :default_profile_image=>false,
     :following=>false,
     :follow_request_sent=>false,
     :notifications=>false},
   :geo=>nil,
   :coordinates=>nil,
   :place=>nil,
   :contributors=>nil,
   :retweet_count=>0,
   :favorite_count=>2,
   :entities=>
    {:hashtags=>[],
     :symbols=>[],
     :urls=>
      [{:url=>"http://t.co/kOHZsMhMQa",
        :expanded_url=>
         "http://www1.nhk.or.jp/amachan/kitasanriku/movie_view8.html",
        :display_url=>"www1.nhk.or.jp/amachan/kitasa…",
        :indices=>[43, 65]},
       {:url=>"http://t.co/ffIGUE4I7J",
        :expanded_url=>"http://www1.nhk.or.jp/amachan/special/0928_3.html",
        :display_url=>"www1.nhk.or.jp/amachan/specia…",
        :indices=>[104, 126]}],
     :user_mentions=>[]},
   :favorited=>false,
   :retweeted=>false,
   :possibly_sensitive=>false,
   :lang=>"ja"}>
URL部分
pry(main)> eval(ENV["TW"]).statuses(383794792125054976, include_entities:true)[0].attrs[:entities][:urls]
=> [{:url=>"http://t.co/kOHZsMhMQa",
  :expanded_url=>"http://www1.nhk.or.jp/amachan/kitasanriku/movie_view8.html",
  :display_url=>"www1.nhk.or.jp/amachan/kitasa…",
  :indices=>[43, 65]},
 {:url=>"http://t.co/ffIGUE4I7J",
  :expanded_url=>"http://www1.nhk.or.jp/amachan/special/0928_3.html",
  :display_url=>"www1.nhk.or.jp/amachan/specia…",
  :indices=>[104, 126]}]

urlをexpanded_urlに置き換える

searchで取得できたツイートのt.coのURLを伸張させてみます。
読みやすいように改行して表記しておきます。

tco_repl = {}
eval(ENV["TW"]). \
search("riocampos", include_entities: true, count: 10). \
statuses.each_with_index do |t, i|
  t.urls.each do |u|
    tco_repl[u.url] = u.expanded_url
  end
  tco_repl.each do |tco, expd|
    t.text.sub!(tco, expd)
  end
  puts "#{i}: #{t.text}"
end