はてブのWebHookが面白いという話。

はてなブックマークのWebHookを試してみて「面白いな~」と思ったので、紹介してみる。

具体的にどんな物かというと…。

自分がブックマークを追加/更新/削除したというイベント (‘add’ or ‘update’ or ‘delete’)
自分のブックマークに第三者からはてなスターが付与されたというイベント (‘star’)
自分に対して第三者からはてなブックマークのコメントで ID コールが送信されたというイベント (‘id_call’)
自分がお気に入りに入れている(公開設定の)ユーザーが新規に(公開設定で)ブックマークしたというイベント (‘favorite:add’)

上記のアクションがあった際に、任意のURIに対して、複数のパラメータを含んだPOSTリクエストを送出してくれる。

というわけで、実際に試してみる。

はてなブックマークWebHookの設定

はてなブックマーク

設定

外部サイト連携

とすると以下のような画面になるので…。

はてなブックマークWebHook設定画面

イベント通知を受け取るURLや、イベントなどを設定する。

とりあえず試してみる

さて、とりあえず使ってみる。
リクエストURLを https://9jp.info/hatebu.php として、以下のように設定してみる。

どういう値が送信されているかの確認のために、以下のような$_POST を var_dumpした結果をファイルに出力するサンプルを書いてみる。

受け側のスクリプト(https://9jp.info/hatebu.php に設置)

<?php
if($_POST['key'] == 'hirakegoma'){
    ob_start();
    var_dump($_POST);
    $postData = ob_get_contents();
    ob_end_clean();
    file_put_contents('./data.txt', $postData);
}
?>

とりあえず、適当なページをブクマして、実行してみる。

data.txtの中身

array(12) {
  ["is_private"]=>
  string(1) "0"
  ["count"]=>
  string(1) "1"
  ["status"]=>
  string(3) "add"
  ["key"]=>
  string(10) "hirakegoma"
  ["username"]=>
  string(11) "buffbuffrat"
  ["permalink"]=>
  string(60) "http://b.hatena.ne.jp/buffbuffrat/20110624#bookmark-48222442"
  ["client"]=>
  string(3) "Web"
  ["timestamp"]=>
  string(25) "2011-06-24T16:35:15+09:00"
  ["comment"]=>
  string(26) "[VPS]てすとぶくま。"
  ["url"]=>
  string(37) "http://rensaba-navi.info/archives/265"
  ["title"]=>
  string(152) "KAGOYAクラウド/VPS(β) での UNIXベンチマーク結果。 - レンサバナビ | レンタルサーバの評判・評価・口コミ情報など"
}

といった感じでPOSTリクエストされている。
ちなみに「更新」の場合はstatusの値がupdate、「削除」の場合はdeleteになっている。

もっと面白そうな使い方

上記のWebHookを利用すれば、ブクマする度にXML-RPC等でブログにブックマークを投稿したり、はてブで気に入らないと思って居る点を改修したブクマ一覧などを作成する事も出来る。
上述したブクマの登録・追加・更新以外のアクションにも対応しているので、それらを組み合わせれば結構面白い使い方があるんじゃないかな~と思う。

Leave a Reply