以前、USB温度計を使ってMRTGに表示する設定をしました。
MRTGの画面を見れば、家の外にいても室内の気温が見れるけど…ずっとHTTPのポート開放しておくのもメンドクサイし…
せっかくなので気温を定期的にtweetしてみる。
つぶやくためのTwitter側の設定と、つぶやく用の環境の設定がそれぞれ必要。
twitterのアカウントの準備
当たり前ですがtwitterのアカウントを準備する。
そして、外部APIからつぶやけるように、アカウントの設定を行う。
1. Twitter Appsにアクセスして、Twitterのアカウントでログイン。
2. 『Create an application』画面で各項目を入力し、アプリケーションを作成する。
アプリケーション名: 任意の名称
アプリケーションの説明: 説明を10文字以上
アプリケーションのウェブサイトURL: 自分のTwitterのURLなど
アプリケーションの種類: クライアントアプリケーションを選択
標準のアクセスタイプ: Read & Writeを選択
Twitterでログインする: チェックをつける
3. 表示される「Consumer key」と「Consumer secret」をメモする。
tweetできる環境を構築
rubyでつぶやきます。
この辺を参考にしました。↓
http://ramtiga.hatenablog.jp/entry/20110409/p1
TwitterのOAuth登録として、以下を実行する。
このとき、表示されるOAuthの「token」と「token_secret」をメモする。
# gem install oauth get-twitter-oauth-token
# get-twitter-oauth-token
Consumer Key: *****
Consumer Secret: *****
...
...
...
Token: ***** # ←tokenとしてメモ
Secret: ***** # ←token_secretとしてメモ
これで環境でつぶやけるようになった。
あとはRubyでつぶやくようのソースコードを準備する。
それほど難しくないけど。
#!/usr/local/bin/ruby
require 'rubygems'
require 'twitter'
CONSUMER_KEY = "*****" # Twitter Appsでメモした「Consumer key」の値
CONSUMER_SECRET = "*****" # Twitter Appsでメモした「Consumer secret」の値
ACCESS_TOKEN = "*****" # OAuth登録でメモした「token」の値
ACCESS_TOKEN_SECRET = "*****" # OAuth登録でメモした「token_secret」の値
Twitter.configure do |config|
config.consumer_key = CONSUMER_KEY
config.consumer_secret = CONSUMER_SECRET
config.oauth_token = ACCESS_TOKEN
config.oauth_token_secret = ACCESS_TOKEN_SECRET
end
# temperコマンド実行
result = `temper`
temp = result.split(",")[1]
# 日時取得
time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
MSG1 = "["
MSG2 = "] の気温 : "
MSG = MSG1 + time + MSG2 + temp
Twitter.update(MSG)
これでつぶやけるようになりました。
cronに登録
あとはこのスクリプトを定期的に実行されるように設定する。
Linux環境なのでcronに登録しました。
# cat /etc/cron.d/tweetTemper
1,21,41 * * * * root /usr/local/bin/tweetTemper.rb
毎時1,21,41分につぶやくように設定。(0,20,40にすると、MRTGのupdateと重複してしまうため、わざと)