TwitterBotをRubyで作る
TwitterBotをRubyで作る
本物のTwitterアカウントでテストするなし
今更ながらBotを作ってみた。何に使うかはまだ秘密!
参考
この本に書いてあることのまんまです。
twitter_bot.rb
コード
require 'rubygems' require 'twitter_oauth' CONSUMER_KEY = ‘***' CONSUMER_SECRET = ‘***' ACCESS_TOKEN = ‘***' ACCESS_TOKEN_SECRET = ‘***' client = TwitterOAuth::Client.new( :consumer_key => CONSUMER_KEY, :consumer_secret => CONSUMER_SECRET, :token => ACCESS_TOKEN, :secret => ACCESS_TOKEN_SECRET ) posts = [ "hoge", "piyo", "huga", "hogehoge", "piyopiyo", "hugahuga", ] post = "[自動投稿] [テストだから気にしないで] " + posts[rand(posts.size)] status = client.update(post) puts ("#{Time.now} #{post}")
ざっくり説明
CONSUMER_KEY
,CONSUMER_SECRET
,ACCESS_TOKEN
,ACCESS_TOKEN_SECRET
はTwitterアカウント毎に事前に用意する(ググれば分かる)配列
posts
にはこのボットにつぶやかせる内容を列挙しておく。ビバ!ハードコーディング!(ヒアドキュメントといえば聞こえはいい)つぶやき内容はランダムにしている。つぶやく周期は後述のcronで制御。
client.update
でつぶやきを投稿。例外処理を全くやっていない。戻り値status
で制御すべきだけど、面倒だからやらない。たぶん大丈夫。おそらくWiFiが切れてたら例外が出るんだろうな。
スケジューラ(cron)
crontab
# TwitterBot 0 * * * * /usr/bin/ruby /Users/7010oncajon/Documents/Programing/Ruby/TwitterBot/twitter_bot.rb >> /Users/7010oncajon/Documents/Programing/Ruby/TwitterBot/twitter_bot.log 2>&1
ざっくり説明
- 1時間周期でつぶやくなう
- ログ出力の方法ってこれでいいんだっけ?
以上