日記
TrackBack Ping URL自動検索フォーム (13:51)Edit

2004/3/25

はてなダイアリーも外部にTrackBackが打てるようになった(http://d.hatena.ne.jp/hatenadiary/20040325#1080189658)らしいんで、後はこの辺があると便利だろうということで、

を作ってみた。

使い方としては、はてなダイアリーとかの日記投稿フォームの本文部分を、TrackBack Ping URL自動検索フォームにコピペし、「Search」ボタンをクリックする。すると、その本文に含まれるURLから検索できたTrackBack Ping URL一覧を表示する。

要するに、記事を書くときにはTrackBack Ping URLの存在を意識せず、ふつうにURLリンクを張ってからこのツールを通せば、TrackBack Ping URL一覧が表示される、というもの。MovableTypeとかは標準でこの機能を持っているけど、ほかにはあんまりこの機能を持っているツールはないよねってことで。

TrackBack Ping URLの検索対象としては、

  • TrackBack auto-discoveryに対応したページ(MovableTypeとかtDiaryとか)
  • はてなダイアリーのページ(URLから自動判別できるため)
  • blogmapのURLランキング対象として登録されているページ(のblogmap用TrackBack Ping URL)
  • ISBN/ASINを持つページ(のblogmap用TrackBack Ping URL)

がある。というか単に、PingProxyが行っているTrackBack auto-discovery処理を流用しているわけだけど。PingProxyでは、TrackBack auto-discoveryの結果を保存(キャッシング)しているんで、一度でも対象となったURLに関してはauto-discoveryが高速に行われる。

ちなみに、PingProxyでは全体が非同期で処理されているのに対し、TrackBack Ping URL自動検索フォームではリアルタイムで処理を行っているため、あんまり対象となるURL数が多いとタイムアウトになったりする可能性がある(キャッシュが効いているターゲットが多い場合は大丈夫)。というか、元々auto-discoveryは重い処理なんで、PingProxyでは非同期処理を行っていたわけだけど、ある程度みんなでauto-discoveryのキャッシュを共有すれば、無駄なトラフィック(負荷)を抑えつつ便利な機能も実現できるよね、ということで、試しにリアルタイム検索フォームも用意してみたわけだ。

ちなみに「対象となったURLも表示する」をチェックしておくと、TrackBack Ping URLの前に、どのURLに対するTrackBack Ping URLなのかも表示される。全部に送信するのではなく、送信前に取捨選択をしたい場合はそちらをどうぞ。

2004/3/25 その2

他のツールから呼ぶ用のREST APIを用意しました。以下の仕様でPOSTするとtext/plainなTrackBack Ping URL一覧を改行(LF)区切りで返します。

  • URL - http://pingproxy.ishinao.net/autodiscovery.php
  • 引数
    • body - 記事本文
    • type - 出力形式。plainを指定すると改行(LF)区切りのURL一覧を返す
    • detail - 詳細出力。1を指定するとPing URLの前に[]で囲んでPingの対象であるURLを返す
PHP+curlのサンプルコード
$discoveryUrl = 'http://pingproxy.ishinao.net/autodiscovery.php';
$body = '記事の本文……'; //文字コードはEUC-JPが望ましい(自動判別はする)
$query = 'body='.urlencode($body).'&type=plain';
$curl = curl_init($discoveryUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $query);
ob_start();
curl_exec($curl);
$pinglist = ob_get_contents();  //TrackBack Ping URL一覧(改行(LF)区切りテキスト)
ob_end_clean();
curl_close($curl);

Published At2004-03-25 00:00Updated At2004-03-25 00:00