[UPDATE1]TwiProwlの快適なプッシュ通知をAndroid端末でも

TwiProwlとは、Twitterのタイムラインを監視し自分宛のMentionやDirect Message、自分のツイートがお気に入り登録された時、リツイートされたとき等のイベントをほぼリアルタイムにiPhoneへプッシュ通知を送るRuby環境で動作するスクリプトです。これをAndroid端末で実現する方法をご紹介します。

[UPDATE1 2011年7月31日]
TwiProwl2.0からAndroidアプリのNotify My Androidにも対応しましたので以下のtwiprowlスクリプト本体を修正する作業は不要になりました。
参考エントリ:TwiProwl2.0はAndroidユーザにとって神アップデートだった

TwiProwlからの通知をNotify My Androidで受け取ったところ(通知バー)
Notification Bar of Galaxy SII

TwiProwlは、Ruby環境、そして常駐させるPCまたはレンタルサーバー等が必要になりますので始めるのがちょっと面倒ですが、使い始めると病みつきになります。iPhoneにはプッシュ通知サービスを実装したTwitterクライアントが多数ありますが、通知したり、しなかったりと動作が不安定です。TwiProwlはリアルタイムに、かつ取りこぼしなく通知してくれます。

Android端末ではどうでしょうか?Twitterクライアントは多数ありますが、(わたしの知る限り)iPhoneのようにプッシュ通知機能を実装しているアプリはなく、一定時間おきに自動更新する機能のみです。Android端末でもTwiProwlを使いたい!と思ったのがキッカケです。Notify My Androidというアプリのプッシュサービスを利用し、TwiProwlを若干修正するだけで実現できます。

お断り

自らRuby環境を構築し、TwiProwlのセットアップが可能な方向けのエントリです。始めてみたい方は詳しく解説されているブログがありますのでそちらを参考にされてください。ということで、TwiProwl導入の説明を大幅に端折らせていただきます。

Notify My AndroidのインストールとAPIキーの取得

Android Marketから”Notify My Android”をインストール(有料)し、Notify My Android – HOMEでユーザ登録してAPIキーを取得します。拙エントリのNotify My Android – AndroidにGrowl通知をプッシュするアプリを参考にしてください。

TwiProwlのスクリプトを修正

エディタでTwiProwlを開き、31行目辺りにある、PROWL_API_ADDを次のように修正します。

(修正前)PROWL_API_ADD = “https://prowl.weks.net/publicapi/add”
(修正後)PROWL_API_ADD = “https://nma.usk.bz/publicapi/notify”

Android端末によっては、TwiProwlの通知メッセージにある絵文字が文字化けする可能性があります。気になる方は各event(RTやMentionなど)で設定されているdescriptionの中で指定されているunicodeの記述を削除します。@northeye さん作の絵文字対応DroidSansFallback.ttfがあれば文字化けはしないようです(未確認ですが後日試してみようと思います)。

(修正前):description => “#{Unicode::E00F} #{desc}”,
(修正後):description => “#{desc}”,

config.ymlにAPIキーをセットする

先ほど取得したAPIキーをconfig.ymlにある” APIKey”にセットして保存してすべての作業は完了です。

twiprowlを実行

twiprowlの実行時に “% twiprowl -c config.yml” のように念のため先ほど保存した設定ファイルを指定します。ホームディレクトリに”.twiprowl.conf”があるとそちらが優先されてしまうのを回避するためです。

Notify My Android

Notify My Androidを開いたところです。下半分の通知の先頭が□で文字化けしています。これは、TwiProwlがunicodeの絵文字を指定していますが、この端末(docomo版Galaxy SII)にあるフォントが対応していないためです。

Notify My AndroidはiPhoneアプリのProwlとほぼ同じですが、フォントサイズや指定アプリへのリダイレクト機能がありません。開発元の@NotifyMyAndroidに問い合わせたところ、「フォントサイズの変更は次のバージョンでリリース予定」という返事がありました。

リアルタイムに取りこぼしなく通知が受けられることは最大のアドバンテージですが、Androidの場合はTwitterクライアントのバックグラウンド自動更新が不要になりますのでバッテリー消費を改善する効果も期待できるのではないでしょうか。

謝辞

このような素晴らしいスクリプトを作ってくださった @northeye さんにこの場を借りて御礼申し上げます。

Posted from ecto on my MacBook