日記
TrackBackを実装する 2Edit

TrackBackを実装するの続きを考えてみる。

情報受け取るインターフェースと情報を受け渡すインターフェースは、その実装管理)責任者が異なるため、分けて考えた方がいいだろう。同じシステム同士でのやりとりならば統一して考えることが出来るが、ひとまずはシステムに縛られない汎用的なインターフェースとして考えてみる。

情報を受け取るインターフェースというのは、

のが目的。

自システムの「どの記事(記事ID)」に対して、「どのような反応(外部サイトのURLコメント本文、反応者情報(名前、メールアドレス、url))」を受けたかを受信し、記録する。具体的な処理に関しては、受信処理と記録処理の2段階に分けて考えた方がいいだろう。さまざまな拡張情報を受信しうるが、そのすべてを記録するとは限らないし、受け取った情報にシステムでさらに独自情報を付加して記録することもありうる。

情報を受け渡すインターフェースというのは、

  • TrackBack通知を発信する
  • TrackBackされる情報元として、情報ソース(引用文)を発信する

という2パターンがありそう。

後者はTrackBack関連のインターフェースというよりは、RSSとか2chdat直読みみたいな、コンテンツのrawデータ(通常のWebブラウザ向けではないコンピュータ同士の通信用フォーマット)を受け渡す仕組みみたいなものなんで、そっち方面の機能として考えた方がいいのかもしれない。具体的な機能としては、あるURL(外部サイトの特定の記事を差す)を指定すると、自動的(ネットワーク経由で)にその本文を取り込んで、その記事を引用したコメントを記述するフォームが表示される、といったイメージ。もちろんその他TrackBack通知に必要な情報も自動的に取り込む。

そして前者がTrackBackの基本となる通知側の仕組み。いまいち把握し切れていないけれども、Movable Typeでは他のサイトへのTrackBack通知を送る仕組みは、あんまり洗練されたものが用意されていない気配。それはちょっといまいち。出来ればある記事urlを指定して「この記事にTrackBack通知する」みたいなコマンドを発行すると、付加情報を入力するフォームが表示されて、それをPOSTすると自動的にTrackBack通知が行われるみたいな感じになっているといいな。

もちろん上記みたいな流れはTrackBack通知専用のフォームという訳ではなく、自サイトのシステムで他のサイトの記事への反応記事を書くときに、反応元URLとしてTrackBack対応サイトのurlを書いておくと、そのurl文字列から自動的にTrackBackインターフェースの有無の問い合わせを行い、もしもTrackBackインターフェースが用意されていたら、自サイトの記事としての投稿処理を行う裏タスクで、反応元サイトへのTrackBack通知も行われる感じ。

現在のWikiLikeでは反応元を明示したblockquoteは使えないけれど、hnf互換コマンドを実装した場合は、たとえば、

CITE http://somedomain.com/somepath/?id=123 引用元名称
引用文引用文引用文引用文引用文引用文引用文
/CITE
コメント本文コメント本文コメント本文コメント本文コメント本文コメント本文

みたいな記事をPOSTしたら、somedomain.com/somepath/に対してTrackBackインターフェースの存在確認を行い、もしも存在したらそのTrackBack受信インターフェースに対して、http://somedomain.com/somepath/trackback.cgi?id=123;author=someont;url=someurl;comment=somecomment;みたいな通知が自動的に行われる(という仕様には具体的にはいろいろ穴があるので要検討)。

データに関しては、最初は気軽にGETPOSTして引数渡しするのが手軽かなーと思っていたんだけど、本当に汎用インターフェースとして考えた場合に、日本語文字コードの問題とかが結構ややこしいことになりそうだ。Googleみたいにie=***;oe=***で文字コードを指定する手軽な実装方法もあるだろうけど、ここは逆にxmlで文字コード宣言をちゃんと行って、受信側が文字コードを適切に解釈すべしとしておいた方が、逆にあとあと面倒が少ないのかも。

Published At2002-12-02 00:00Updated At2002-12-02 00:00