Growl for Windowsにはてなブックマーク等のwebhookでデスクトップ通知する

http://www.growlforwindows.com/gfw/:title=がバージョンアップし、Notify.ioから通知を受ける事が出来るようになった。なので様々な通知をウェブからデスクトップに配信できるようになった。その方法などを詳細に記し、幾らかのブクマを集めようかと思ったがNotify.ioの構造がいまいち謎くて説明できる程理解してないのでやめた!簡単に覚え書きだけ残す。

http://www.notify.io/outletsからDownload Listen URLリンクをクリックすると素直なブラウザならGrowl for Windowsが関連付いてなんか勝手に開いてGrowl for WindowsのNetworkメニューがよしなにされる。

で、はてブhookとかをNotify.ioとかに送れば終わり、かと思えばそうではない。Notify.ioが謎のファッキン仕様で、POSTでデータを送るのだけどパラメータを解さない。textなどパラメータをクエリストリングで渡してやらないとだめ。webhookの否定である。

通常のwebhookじゃ何も届けられないのでパラメータいじくるためにhookhubを使う。
http://www.hookhub.com/dzfl/hook/65001:title=

if (stash.params.status != "add" && stash.params.status != "favorite:add") throw "unknown status";
var hash = stash.config.notify_io_md5;
http.post(
  "http://api.notify.io/v1/notify/" + hash
  + "?api_key=" + stash.config.notify_io_api_key
  + "&text=" + encodeURIComponent(stash.params.comment)
  + "&icon=" + "http://www.st-hatena.com/users/" + stash.params.username.slice(0,2) + "/" + stash.params.username + "/profile.gif"
  + "&link=" + stash.params.url
  + "&title=" + encodeURIComponent(stash.params.title)
);

クエリストリングで渡せる値はこの辺を参考

これで、はてブhook→hookhub(パラメータをクエリストリングに変換)→Notify.io→Growl for Windows が完了。けど何故かはてブ新着が一部しか流れてこない。もうどうでもいい。



こんな七面倒臭い事せずに簡単にやりたい人はhttp://hatetra.appspot.com/:title=を使えばいいと思う。