りむっちスケッチ

ハニカムログ

Tiarraで拾った文字列をnmaにプッシュ通知する

プッシュ通知をもっと便利に使う

今や、様々なアプリケーションがAPNSやGCMでプッシュ通知を実装しているけれど、自分の好きに文字列フィルタしながらプッシュをさせるにはどうしたらイイモノかという点に注力した手法があることを今更ながらに知った。実に今更感が漂っていて恥ずかしいレベルだけれども、たしかにこれは便利だなぁという事。

tiarraに何でも統合してからPushさせるまで

f:id:rimtty:20140617114229p:plain

すべてtiarraが基点になるのだけれど、tiarraが観ているサービスは以下

ここに、bitlbeeなんかを追加すればIM関係もアラートが出せるので便利さは増すのかもしれない。

tiarraへはもうほぼチョクセツアクセスすることはあまりなくて、tiarraのLog::DBI導入でログはMySQLへ、それから書き込みはsocketを使ってtiarraMetroの導入でIRCクライアントレスを実現してる。全開TIGの導入について掲載したけれども、常時Twitterを流し観してくれてるTiarra、Tigデーモンはありがたい面が存在する。

Auto::Notify拡張

tiarraにはAutoNotifyという機能実装してあってとくていの条件をつかってHTTPポストを実行することができる。これをうまく使うと他のへんなことにも使えそうだがまたそれはおいおい。

TiarraのConfのケツにこういうのを書けば良い。 regex-keywordに書き込んでいる文字列に反応して、自分の端末にプッシュ通知がくるというワケ。

+ Auto::Notify {
    mask: *@* *!*@*
    regex-keyword:(rimtty|りむってぃ)
    format: #(date:%H:%M:%S) [#(channel):#(nick.now)] #(text)
    blocks: nma prowl

    prowl {
        type: prowl
        apikey: <ここにAPIキーを入れてね>
        priority: 0
        application: tiarra
        event: keyword
    }

    nma {
        type: nma
        format: #(date:%H:%M:%S) [#(channel):#(nick.now)] #(text)
        apikey: <ここにAPIキーを入れてね>
        priority: 0
        application: tiarra
        event: keyword
    }

}

このPushサービスを利用することで、tiarraが拾っている文字列のなかから必要に応じて自分のケータイデバイスなどにPushアラートが投げられるという形。ProwlもNMAもサイトにログインしてAPIキーを取得し、iOS/Andoroidアプリをそれぞれストアから拾ってきて、端末でログインすればPushデバイスとして紐付けが完了する。

APNSもGCMも自分でアプリとデバイスプッシュへのサービスを書けば同じことができるので、AmazonSNS、SQSとうまく連携させれば低価格ですべてのデバイスに投げ込むようなサービスも比較的簡単に作れると思う。WPにもいまは対応してるし。

f:id:rimtty:20140617132103p:plain