A Twitterbot is a program used to produce automated posts on the Twitter microblogging service, or to automatically follow Twitter users. (Wikipedia)
利用者の Twitter アカウント関する操作権限をもらって何かするもの。つぶやいたり、フォローしたり、ふぁぼったり。
Ruby のライブラリは「gem」と呼ばれる。Ruby の実行環境をインストールすると gem というコマンドが使えるようになっているので gem install xxx
で gem をインストールする。
ちなみにこれは私がつくって公開している gem の一覧。
https://rubygems.org/profiles/seratch
ずばりそのまま twitter という名前の gem があるので今回はそれを使う。
gem install twitter
Ruby を試すのには REPL(Read Eval Print Loop) という対話環境を使う。Ruby をインストールしてあれば irb というのが使える。
もう少しリッチな pry というのもあるので、この辺は好みで。gem install pry
で pry コマンドを使えるようになる。
gem install twitter
してあれば irb 上で以下のようなアプリケーションが実行できる。
# モジュールを読み込む、起動したら必ずやる
require 'twitter'
# https://apps.twitter.com/ で app を作ってその API Keys タブに行くと以下の 4 つのキーが得られる
# デフォルトでは Read-only になっているので Permissions から Read-Write な access token を re-generate してください
client = Twitter::REST::Client.new do |config|
# 注意:これらは GitHub などで公開してはいけない設定
# 環境変数は ENV['HOME'] のようにして Ruby のコード上で取得できるので
# export TWITTER_CONSUMER_KEY=xxx のようにして
# ENV['TWITTER_CONSUMER_KEY'] として取得する方がよいです
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_ACCESS_SECRET"
end
# この辺を見るとたいがいのことはできる
# http://rdoc.info/gems/twitter#Usage_Examples
# http://rdoc.info/gems/twitter/Twitter/REST/Client
# つぶやいてみる
tweet = client.update('デザイナーの皆さんに twitter gem の使い方を教えているところ #m3dev')
tweet.attrs
# follow me!
client.follow('seratch_ja')
# タイムラインを見る
tweets = client.home_timeline
tweets.size
# 分かりづらいので属性を見てみる
tweet = tweets.first
tweet.attrs
# ざっと全部見る
tweets.map { |t| t.attrs }
# 必要なものだけ取り出す
user_names = tweets.map { |t| t.user.screen_name }.uniq
tweets.map { |t| "#{t.text} by @#{t.user.screen_name}" }
# オプションを指定する
# http://rdoc.info/gems/twitter/Twitter/REST/Timelines#home_timeline-instance_method
tweets = client.home_timeline(count: 100, include_rts: false)
tweets.map { |t| t.text }
そんな感じで色々遊んでみましょう。