=encoding euc-jp =head1 名前 Net::TrackBack - TrackBack 1xのコア機能のモジュール化された実装。 =head1 概要 use Net::TrackBack; use CGI qw( :cgi-lib :standard ); my $q = new CGI; my $p = new Net::TrackBack; my $foo = $q->Vars; $p->receive_ping($p->get_tb_id($q), $foo, \&dump2warn ); sub dump2warn { my $data=shift; foreach (keys %{ $data }) { warn "$_ " . $data->{$_} } } use Net::TrackBack; my $url = 'http://www.mplode.com/tima/archives/000190.html'; $p=new Net::TrackBack; foreach ($p->discover($url)) { print "$_\n"; } if ($p->is_success) { print "A SUCCESS!\n"; } elsif ($p->is_error) { print "A FAILURE.\n". $p->message ."\n"; } use Net::TrackBack; $data{ping_url}='http://your/test/trackback.cgi/2ping'; $data{title}='foo title!'; $data{url}='http://www.foo.com/tima/'; $data{excerpt}='foo is the word.'; $data{blog_name}='Net::TrackBack'; $p=new Net::TrackBack; print qq(Send Ping: $data{url})."\n"; $p->send_ping(\%data); if ($p->is_success) { print "SUCCESS!\n" . $p->message ."\n"; } =head1 説明 これはTrackBackの標準実装と仕様から見つけられるTrackBackの機能を、 実に手早く「オブジェクト指向モジュール化」したものです。 標準実装にある表示と管理の機能については、CGI.pmの信頼できる実装があるのに 付け加えることはせず、省きました。私はTrackBackの天才達をクレジットに入れていません。 このモジュールコードのほんの一部だけがスタンドアロンのTrackBackの実装から派生しています。 このモジュールを開発した私の動機は、TrackBack機能の試験と実装をもうちょっと容易にすることです。 私は自分で適正な量の試験をこのモジュールに対して行いましたが、 今のところこのモジュールはα版とみなすべきでしょう。言い換えれば、このモジュールが 一旦ちょっとの間流通したときに現れるフィードバックや用例に基づいて現状の インターフェースは変わるかもしれないということです。 フィードバックや示唆をいただければ、非常に感謝します。まだすべきことは多く残っています。 このモジュールは完成から程遠い状態です。検討事項の要点についてはTO DOセクションをご覧下さい。 このモジュールはLパッケージを必要とします。 =head1 メソッド 以下のメソッドを利用できます: =over 4 =item * new Net::TrackBackのコンストラクタ。Net::TrackBackのオブジェクトのリファレンスを返します。 =item * $p->receive_ping($tb_id,%data_in,\&code_ref) TrackBack ID($tb_idで識別されます)として受領したデータのハッシュを処理し、 いくつかの標準化処理を経た後でcode_refで指定された次の処理 -- ディスクへの保存や電子メール送信等々 -- のためのルーチンにデータを渡します。 =item * $p->send_ping(%data_out) trackBackの仕様で定められた要素のハッシュをとり、ping_url要素で指定されたリソースにping(送信)します。 =item * $p->discover($url) $urlで指定されたWebページを取得し、見つかった全てのTrackBack pingを抽出するルーチンです。 このpingは単純な配列で返されます。 =item * $p->is_success() 最後のオペレーションが成功したか否かを示すブーリーン値(1か0)を返します。 =item * $p->is_error() 最後のオペレーションが失敗したか否かを示すブーリーン値(1か0)を返します。 =item * $p->message() 最後のオペレーションについて、人が読むことのできるメッセージを返します。 =item * $p->get_tb_id($CGIobj) CGI.pmと一緒に使うためのユーティリティーメソッドです。 CGI.pmのリファレンスを取り、TrackBack ping IDを受け取ったリクエストから抽出します。 =back =head1 参考資料 L, L =head1 TO DOと問題点 =over 4 =item * Cはおそらく、ハッシュリファレンスの配列を返します。 =item * Cは名前空間を正確に扱いません。標準的なプレフィックスに忠実であれば問題ないでしょう。 =item * Edc:subjectEなどのDublin Core要素の拡張はサポートしてません。 =item * TrackBackスレッディングも将来実装するかも? =back =head1 ライセンス The software is released under the Artistic License. The terms of the Artistic License are described at http://www.perl.com/language/misc/Artistic.html. =head1 作者&コピーライト Except where otherwise noted, Net::TrackBack is Copyright 2003, Timothy Appnel, tima@mplode.com. All rights reserved.