前回の 自動Retweet bot 作った のに続き、今度はあるキーワードにヒットした Tweet を 自動 Retweet する bot を作った。
自分のブログ hirofukami.com について Tweet されたものを自分のフォロワーにもアピールしたいかなと思ったのがきっかけ。 評価はポジティブでもネガティブでも問わないという、オープンスタンスで。
tweet id 情報を手元に置きたくないのでまずは Retweet して、すでに Retweet していた場合はエラーで逃げてしまうように。
今回も Ruby の gem twitter を使って簡単 Ruby スクリプト。 手元の MacBook の cron で動かしています。
環境
- MacBook 12inch Retina OS X El Capitan
- Ruby 2.0.0 (rvm)
以下、gist ソース
解説
Twitter REST APIs から search/tweets を使って、最近のキーワードにヒットしたtweetを取得する。
tweet が自分自身以外だった場合(screen_name で引っ掛けた)にその tweet を Retweet する。
すでに Retweet していた場合はエラー扱いになるので、 begin
~ rescue
で逃げれるようにしてメッセージだけ出力して終了。
使い方
事前準備
$ gem install twitter
- ~/.bash_profile に Twitter consumer key, access token などを追記
## Twitter API
export CONSUMER_KEY="SET YOUR KEY"
export CONSUMER_SECRET="SET YOUR SECRET"
export ACCESS_TOKEN="SET YOUR TOKEN"
export ACCESS_TOKEN_SECRET="SET YOUR SECRET"
自分のものに置き換えてください。
これらの情報は Twitter Application Management でアプリ追加をした時に発行されます。
cron に仕込む
$ crontab -e
10 * * * * cd $HOME/Development/Twitter-bot && $HOME/.rvm/wrappers/ruby-2.0.0-p353/ruby search-retweet-bot.rb
ruby は rvm を使っているためパスの指定が必要でした。毎時10分の時に実行されます。
MacBook を閉じてしまっている時は実行されないので、実質実行時間は自分がPCに向かっている間だけということになります。
結果
ということで、以下の様な tweet に対して自動 Retweet していますと。
LEAN – インタビューやってみて失敗したあれこれ | Hiro Fukami's Blog: http://t.co/WMG3JvjEaP
— Dyki Ogawa (@Dyki01) July 14, 2015
自分もやりたい!けど、敷居が高い。と思った方はついでに動かすことはできるので相談ください。