RubyデーモンでTwitterバルス!
- この記事は Ruby Advent Calendar jp: 2011 : ATND の9日目です。
- 前日は @sato_ryuさんのGemfileの書き方を学んで安心して年を越すでした。
- 明日の担当はくりすみいおさんです。
前準備:バルスの投稿時間
- 番組情報を見ると、本日12/9 21:00〜23:34で放送
- おそらくノーカット放送
- バルスコピペ「本編開始から1時間55分5秒後に宣言」される
- バルス直後が理想だがバルス前の誤投稿だけは避けたい
- バルスの後は 「目がー」→「エピローグ」→「君をのせて」→次の番組間のCM でおそらく12〜15分ぐらいだろう。
以上の情報から予測して「2011/12/9 23:22」に投稿することに決定
前準備:Twitter認証情報取得
https://dev.twitter.com/apps/new、http://atoken4me.heroku.com/ を利用して
consumer_key、consumer_secret、oauth_token、oauth_token_secret を取得しておきます。
ソースコード
ruby1.9.2前提で書いてます。
balus.rb
# coding: utf-8 require "rubygems" require "twitter" require "date" # デーモン化 Process.daemon class Balus BALUS_TIME = DateTime.new(2011, 12, 9, 23, 22, 00, Rational(9, 24)) # 取得したTwitter用各データを設定 Twitter.configure do |config| config.consumer_key = YOUR_CONSUMER_KEY config.consumer_secret = YOUR_CONSUMER_SECRET config.oauth_token = YOUR_OAUTH_TOKEN config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET end while true if BALUS_TIME < DateTime.now Twitter.update("バルス!") exit end sleep(10) end end