ケータイの歩数計の値を自動でTwitterに投稿してみた

ドコモのF-03Aを買ったら、歩数計機能が付いてた。つまり万歩計。ケータイを持ち歩くだけで勝手に計測していて、一日ごとに集計してくれる。しかも、毎日の歩数を自動でメール送信してくれる設定も可能。

ってことで、この機能を使って、その日歩いた歩数を自動でTwitterに投稿するようにしてみた。

準備するもの

メールサーバの設定

メアドを作る

まずは専用のメアドを用意する。さくらインターネットのスタンダードなら以下の手順。

  1. コントロールパネルにログインする。
  2. 「メールアドレスの管理」を選択。
  3. 「メールアドレスの追加」のところで、新しいメアドを作る。

ここで作ったメアドは、この歩数計自動Twitter投稿のためだけのメアドとして使うこと。そして誰にも教えちゃダメ。

.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の場合は、

  1. iアプリの「ウォーキングチェッカー」を起動。
  2. 「自動送信メールを設定する」を選択。
  3. 「送信する」として、好きな時間帯を選び、送信先のアドレスにさっき作ったメアドを入力。「連携サービス」は、自分の場合は何も利用してないので「使用しない」にした。
  4. メニューに戻り、アプリを終了させる。

こんな手順だった。

終わり

設定はこれで終わり。あとは指定した時間帯になると、Twitterに歩数が投稿されるはず。

例えば以下のような感じ。

歩数メール本文の先頭の2行がTwitterに自動投稿される。歩数メールのフォーマットがF-03Aのものと違う場合は、twalk.rbの mail っていう変数を作ってるところを適当に直せば良い。

まだほとんどテストしてないから、バグってたらゴメン。

メンドイね

さくらインターネットのようなメールサーバが無い人は、例えば歩数メールを普通のメアドに送るように設定して、Plaggerでメールチェック→編集→Twitter投稿みたいなのを書いてもできると思う。

それか、メール経由でTwitterに投稿できるサービスを使って、歩数メールを丸ごと無編集でTwitterに投稿しちゃうってのもアリなのかも知れない。

しかしそもそも歩数計機能を持ったケータイって何種類くらいあるんだろう。あんまり聞いた事ないので、まだFの一部機種だけかも知れない。でも普通の昔からある万歩計と違って、勝手に一日ごとに集計してくれてメール通知までしてくれるので結構おもしろい。この機能は今後いろんな機種に搭載されていけば良いと思う。