ケータイの歩数計の値を自動でTwitterに投稿してみた
ドコモのF-03Aを買ったら、歩数計機能が付いてた。つまり万歩計。ケータイを持ち歩くだけで勝手に計測していて、一日ごとに集計してくれる。しかも、毎日の歩数を自動でメール送信してくれる設定も可能。
ってことで、この機能を使って、その日歩いた歩数を自動でTwitterに投稿するようにしてみた。
準備するもの
- F-03A(じゃなくても、歩数計+メール送信機能があれば良い)
- さくらインターネットのスタンダードプランみたいに、メール受信をトリガにして好きなスクリプトを発動できるメールサーバ
メールサーバの設定
メアドを作る
まずは専用のメアドを用意する。さくらインターネットのスタンダードなら以下の手順。
- コントロールパネルにログインする。
- 「メールアドレスの管理」を選択。
- 「メールアドレスの追加」のところで、新しいメアドを作る。
.mailfilterの作成
次に、sshでさくらインターネットのサーバに入り、設定ファイルを作る。
%cd ~/MailBox/(作ったメアドの@より左の文字)/ %vi .mailfilter
viの画面に以下のように入力。
to "| /home/(さくらインターネットアカウント名)/scripts/twalk.rb"
:wq で保存してviを終了させる。
さらにパーミッションの変更が必要。
%chmod 600 .mailfilter
これで、専用メアドにメールが来たら ~/scripts/twalk.rb を呼び出すような仕組みができた。
スクリプトの作成
次にその twalk.rb を作る。
%cd ~/ %mkdir scripts %cd scripts %vi twalk.rb
viの画面に以下のように入力。
require 'net/http' require 'kconv' user = '(自分のTwitterアカウント)' pass = '(自分のTwitterパスワード)' while s = gets if s.chomp.size == 0 mail = [gets, gets].join(' ') break end end Net::HTTP.version_1_2 req = Net::HTTP::Post.new('/statuses/update.json') req.basic_auth user, pass req.body = 'status=' + URI.encode(mail.toutf8) Net::HTTP.start('twitter.com', 80) do |http| res = http.request(req) end
:wq で保存して終了すれば完成。
ケータイの設定
最後に、ケータイの歩数計機能からメール送信をするような設定をする。
手元にあるF-03Aの場合は、
- iアプリの「ウォーキングチェッカー」を起動。
- 「自動送信メールを設定する」を選択。
- 「送信する」として、好きな時間帯を選び、送信先のアドレスにさっき作ったメアドを入力。「連携サービス」は、自分の場合は何も利用してないので「使用しない」にした。
- メニューに戻り、アプリを終了させる。
こんな手順だった。
終わり
設定はこれで終わり。あとは指定した時間帯になると、Twitterに歩数が投稿されるはず。
例えば以下のような感じ。
歩数メール本文の先頭の2行がTwitterに自動投稿される。歩数メールのフォーマットがF-03Aのものと違う場合は、twalk.rbの mail っていう変数を作ってるところを適当に直せば良い。
まだほとんどテストしてないから、バグってたらゴメン。
メンドイね
さくらインターネットのようなメールサーバが無い人は、例えば歩数メールを普通のメアドに送るように設定して、Plaggerでメールチェック→編集→Twitter投稿みたいなのを書いてもできると思う。
それか、メール経由でTwitterに投稿できるサービスを使って、歩数メールを丸ごと無編集でTwitterに投稿しちゃうってのもアリなのかも知れない。
しかしそもそも歩数計機能を持ったケータイって何種類くらいあるんだろう。あんまり聞いた事ないので、まだFの一部機種だけかも知れない。でも普通の昔からある万歩計と違って、勝手に一日ごとに集計してくれてメール通知までしてくれるので結構おもしろい。この機能は今後いろんな機種に搭載されていけば良いと思う。