Web Hook機能か。
はてなブックマーク Web Hook は自分がブックマークしたというイベント通知を他のウェブアプリケーションに通知する仕組みです。はてなブックマークにブックマークを投稿した際、設定画面で指定した任意の URL に、ブックマーク対象の URL やタイトルなどのデータを HTTP POST します。Web Hook からの HTTP リクエストを受け取るプログラムを用意することで、ブックマーク投稿のイベントに合わせて動作する任意のアプリケーションを開発することができます。
まずおもったのはTrackback Pingを拡張した形やAtomPubのEntryを送るんじゃないんだっておもったこと。
でも、まあPOSTのパラメータで送るほうが簡単か。
簡単にTrackBackとの違いをまとめると
- TrackBackは記事ごとに作成/更新されたことを外部に伝える機能だけど、Web Hookは作成/更新を常に送るための機能
- TrackBackはXMLを返しステータスがあるが、Web Hookにはステータスの定義がない
- 404や500が返ったときにどうなるのかの定義がない?どうするのだろうか?
- TrackBack Ping URLにGETをすると、TrackBackPingしてきたもののリストを返すことになっているが、Web Hookで送るURLにはその規定はない
あとはシステムへの反映として、Ping先のシステムのどこかにリンクが作成されることが期待されるとか、Ping元にリンクがあることが期待されるとかがあるが、そのあたりはない。
Web HookはブログシステムではTrackBackとして確かに昔からあったし、システムのバックエンドとしては結構同じような仕組みが使われているとおもう。うちの社内システムも同じようなことやってるよと思う人は結構いるだろう。
けど、ことインターネットで公開されたAPIというなかではブログサービスや一部Wikiでつかわれるだけで、ブログ検索サービスへのトラックバックを除くと、あまり他のサービスとの組み合わせはなかったと思う。
(トラックバックの設定に常にTrackback Pingを送信するURLというのがあった気がしたのだが、今確認するとないなぁ。)
そして、先日書いたAppJetとかはWeb Hookみたいな通信しあうWebの仲介役としての意味があったんだと思い直した。そういうのは簡単に書けて、自分でサーバー保守する手間が省けて、ウェブアプリケーションとしての体裁(URLがあって、リクエストが受け取れる)が整っている必要がある。*1
すでにブックマークしたものをTwitterにというのが公開されているけど、ウェブアプリケーションとしての体裁が整っているけど画面はいらないというものをつくるシーンが今後増えていくかもしれないわけで、今後Web Hookが一般的になれば、GAEはみんなのためのアプリじゃなくて、自分のためのアプリをつくっていくための機構だというのも強調されるのだろう。