WebService::ImKayac

AnyEvent::IMAPListenを作って、実際に複数アカウントを監視しようとしたとき、im.kayac.comにPOSTする処理をいくつも書く必要がでてきた。
関数化して置けば済む話ではあるのだけど、POSTのパラメータ生成方法とかは本質とは無関係だから隠蔽するべきだ(キリッ とかいうノリで、
モジュール化してみたらかなり見通しがよくなった。
http://github.com/taiyoh/WebService-ImKayac
実際の処理は、im.kayac.comのサンプルにあったirssiでの通知スクリプトほぼそのままです。というか、jQueryの$.postみたいなのって、Perlになかったっけ…。というかそもそも、im.kayac.comへの通知モジュールとか、普通にありそうなんだけど…><。

use WebService::ImKayac;

my $im = WebService::ImKayac->new(
  type => 'password',
  user => '...',
  password => '...'
);

$im->send('Hello! test send!!');

typeには「none」「password」「secret」の3種類があって、それぞれim.kayac.comの認証方式に対応してます。
認証方式似合ったパラメータがないと怒ってdieするので、まあ、そこはひとつ、宜しくお願いします。