注意:Twitter gemのバージョンが5未満の設定ですので、5以上だと以下の手順は無効ですゴメンナサイ
目次
▼ツイート
▼タイムライン
▼数字idとアカウント名との変換
▼ツイートIDで表示
▼キーワード検索
▼トレンド
▼フォロワー関連
▼フォロー関連
▼リストメンバー
▼リストメンバーの追加・削除
▼参考リンク
前準備
前提としてTwitter Application Managementでconsumer_key, consumer_secret, oauth_token, access_token, oauth_token_secretを取得済みであるとします。
もちろんtwitter gemもインストール済みである必要があります。
設定ファイルset.rbを作業ディレクトリに用意します。
def set Twitter::Client.new(:consumer_key => "********", :consumer_secret => "********", :oauth_token => "********", :oauth_token_secret => "********") end
▼タイムライン
ruby -rtwitter -e 'load "./set.rb"; t = set; t.user_timeline("riocampos", count: 200).each{ |i| puts i.text }'
▼数字idとアカウント名との変換
- 数字のidをアカウント名または名前に
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.user(56997313).to_hash[:screen_name]' => "riocampos" ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.user(56997313).to_hash[:name]' # => "riocampos/火田理央"
- アカウント名をidに
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.user("riocampos").to_hash[:id]' # => 56997313
▼ツイートIDで表示
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.user("riocampos").status(383794792125054976)' # => 長文なのでこちらに
statusの代わりにstatusesを使うと複数のIDを指定できます。結果はArrayで返ってきます。
▼キーワード検索
アカウント名とツイートを列挙(件数100件上限でAPI1回消費)
例えば「riocampos」を検索。
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.search("riocampos", {:count => 100}).to_hash[:statuses].map{ |i| "@#{i[:user][:screen_name]}: #{i[:text]}"}'
▼トレンド
日本のトレンド
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.local_trends(23424856).map{ |i| i.to_hash[:name] }'
おまけ情報:
世界のトレンドはlocal_trends(23424856)をtrendsに変更してください。
日本各地のトレンドはlocal_trends(23424856)の数字部分*1を以下に従って変更してください。
北九州 | 1110809 |
---|---|
埼玉 | 1116753 |
千葉 | 1117034 |
福岡 | 1117099 |
Hamamatsu | 1117155 |
広島 | 1117227 |
川崎 | 1117502 |
神戸 | 1117545 |
熊本 | 1117605 |
名古屋 | 1117817 |
新潟 | 1117881 |
Sagamihara | 1118072 |
札幌 | 1118108 |
仙台 | 1118129 |
高松 | 1118285 |
東京 | 1118370 |
横浜 | 1118550 |
沖縄 | 2345896 |
大阪 | 15015370 |
京都 | 15015372 |
日本 | 23424856 |
岡山 | 90036018 |
▼新しい順のフォロワー一覧(アカウント名で)
ちなみに検索系APIなのでリミットは180回/15分です。
最近フォローされた20人(API1回消費)
どちらでも同じです。
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.followers.to_hash[:users].map{ |i| i[:screen_name] }' ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.followers.attrs[:users].map{ |i| i[:screen_name] }' ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.followers.collection.map{ |i| i[:screen_name] }'
おまけ情報:
- 以下でもto_hash[:users]の部分はcollectionに置き換え可能です。
- [:screen_name]を[:name]に変更するとアカウント名ではなく名前で表示できます。
▼新しい順のフォロワー一覧(全員。API(フォロワー数/5000)回消費。ただし数字ID)
どちらも同じです。
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.follower_ids.all' ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.follower_ids.to_hash[:ids]'
▼新しい順のフォロー一覧
▼新しい順のフォロー一覧全員(API(フォロー数/5000)回消費 ただし数字ID)
設定系APIなのでリミットは15回/15分です。
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.friend_ids.to_hash[:ids]'
▼フォローする(APIリミット無し、ただし上限1000アカウント/日)
@riocamposと@riocampos2とをフォローする。
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.follow(["riocampos", "riocampos2"])'
▼リムーブ/アンフォローする(APIリミット無し)
@riocamposと@riocampos2とをリムーブする。
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.unfollow(["riocampos", "riocampos2"])'
▼新しい順のリストメンバー
ユーザriocamposのitリストを表示するとします。
最近フォローした20人(API1回消費)
ruby -rtwitter -e 'load "./set.rb"; t = set; puts t.list_members("riocampos", "it").collection.map{ |i| i[:screen_name] }'
おまけ情報:
- 自分のsampleリストを表示する場合にはlist_members("riocampos", "it")をlist_members("sample")に変更してください。
▼リストメンバーの追加・削除
自分のアカウントのsampleリストのメンバー追加・削除。
sampleリストに@riocamposを追加
ruby -rtwitter -e 'load "./set.rb"; t = set; t.list_add_member("sample", "riocampos")'
複数のアカウント@aaa, @bbb, @cccを追加
ruby -rtwitter -e 'load "./set.rb"; t = set; t.list_add_members("sample", [aaa, bbb, ccc])'
一回100アカウントまで。ただしAPIリミット無しです(多分)。
sampleリストから@riocamposを削除
ruby -rtwitter -e 'load "./set.rb"; t = set; t.t.list_remove_member("sample", "riocampos")'
sampleリストに含まれていなくてもエラーは出ません。
複数のアカウント@aaa, @bbb, @cccを削除
ruby -rtwitter -e 'load "./set.rb"; t = set; t.t.list_remove_members("sample", [aaa, bbb, ccc])'
sampleリストのメンバー全てを削除!
ruby -rtwitter -e 'load "./set.rb"; t = set; t.list_remove_members("sample", t.list_members("sample").all.map{ |i| i[:screen_name] })'
もちろん空のリストが残ります。