トラックバックの仕様

トラックバックを相手先ページに登録してもらうためにはトラックバックpingを送信する必要があります。
逆に言えばトラックバックを受けるためには、トラックバックpingを受信することになります。
トラックバックを送信する側をクライアント、受信する側をサーバといいます。

クライアントからサーバへのトラックバックping送信方法

トラックバックpingはHTTP POSTリクエストでコンテントタイプはapplication/x-www-form-urlencodedで、文字コードをcharsetで指定する必要があります。
また送信内容は以下となります。

属性説明必須/任意
titleクライアント側のエントリのタイトル任意
excerptクライアント側のエントリの要約任意
urlクライアント側のエントリの permalink必須
blog_nameエントリを post したクライアント側のブログの名前任意
titleクライアント側のエントリのタイトル任意

一般的にexcerptは255バイト以上ある場合、252バイトで切られ、後に...が付けられるようになっています。
以前はGETリクエストでも送信可能でしたが、変更猶予期間を経て2003年1月に廃止となりました。

POST http://www.example.com/mt-tb.cgi/5
Content-Type: application/x-www-form-urlencoded; charset=utf-8
title=Foo+Bar&url=http://www.example.net/&excerpt=My+Excerpt&blog_name=Foo

トラックバック ping の送信に成功すると、サーバから次のようなレスポンスが返ります。

<?xml version="1.0" encoding="iso-8859-1"?>
<response>
<error>0</error>
</response>

失敗した場合は次のようなレスポンスになります。

<?xml version="1.0" encoding="iso-8859-1"?>
<response>
<error>1</error>
<message>The error message</message>
</response>

送信についての必須項目は
(1) POSTで送信すること
(2) コンテントタイプはapplication/x-www-form-urlencodedで、文字コードをcharsetで指定すること
(3) 送信内容には『url』を含めること
です。

サーバからクライアントへのトラックバックping送信先URLの通知

トラックバックを受け入れるページ(ウェブログエント)のメタデータに次のような形式のRDFを埋め込みます。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
    rdf:about="http://www.example.com/archive.html#foo"
    dc:identifier="http://www.example.com/archive.html#foo"
    dc:title="Foo Bar"
    trackback:ping="http://www.example.com/tb.cgi/5" />
</rdf:RDF>

dc: 要素はDublin Core標準に準拠した要素です。
RDFブロックにある trackback:ping の値を展開します。これがトラックバックPing URLです。

注意: XHTMLへRDFを埋め込むと、現状のバリデータではエラーになってしまうため、バリデータでチェックしたいときは、RDF部分をコメント記号で囲むようにしてください。

<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
...
</rdf:RDF>
-->

完全な解決方法とはいえませんが、応急処置にはなります。

トラックバックの仕様には、『今後変更になるかもしれません。』のような記述が多く、割と動的な仕様です。
トラックバックされた一覧を取得する仕様が削除されたり、pingがPOSTに移行が完了したら変更になる予定の部分があったり、トラックバックpingのレスポンスXMLが曖昧であったり、RDFが一時的な解決法を使っていたりします。

スポンサーリンク

関連記事

スポンサーリンク

>>> 演算子

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る