TrackBack
TrackBackの送受信
TrackBackとは
「本日のリンク元」+ツッコミ機能のすごいバージョンみたいなものです。(というと語弊がありそうだけど)
Aさんの日記(blogでもいいんだけど)のとある段落についてBさんが日記の中でなんかコメントを書いたとします。で、Aさんの日記に「Bの日記でもこの件について書いたよーん」ってお知らせを置きたくなったとします。
いままでのtDiaryだと、リンクしてリンクをたどればAさんの日記の「本日のリンク元」にBさんの日記のリファラが残るんですが、その代わりにBさんがAさんの日記に「TrackBack」なるものを送信してあげます。そうするとAさんの日記がそのTrackBackを受け取って「あ、Bさんの日記にうちの日記へのツッコミがあるんやな」って判断して「Bさんの日記にもなんか書いてあるで」って表示することになってます。
ここまで読んだときに「ツッコミとの違いはなんやねん?」という疑問が出てくると思いますが、ツッコミとの違いは... 名前と表示する場所が違います。(^^;)実際、tDiaryのTrackBackはツッコミ機能を利用して実現されてますし...
ポリシーとしては、ツッコミだと相手の日記にツッコミを書き込むのに対して、TrackBackだと相手の日記にはポインタだけを書き込んで、自分の日記に反論なり意見なりを書き込むという違いがあります。
ごちゃごちゃ書きましたけどhttp://d.hatena.ne.jp/koseki/20030419#p1の図の方がわかりやすいかも。
インストール方法
- tb-send.rbとtb-show.rbをmisc/pluginディレクトリにコピーします。
- 言語リソース( ja/tb-send.rb, en/tb-send.rb, ...) をPLwxLI misc/plugin/ja/tb-send.rb などにコピーします。同名のファイルですが、間違わないようにご注意。
- tb.rbをtDiaryのインストールされているディレクトリ(index.rbなどと同じディレクトリ)にコピーします。(CVSではplugin/trackback/tb.rb にあります。)
- 単一のtDiaryで複数の日記を運用している場合は、index.rbと同様の手法でtb.rbへのシンボリックリンクやrequireを設定してください。追記:tb.rbをrequireで設置したときに,#!/usr/bin/env ruby -I /usr/local/install/tdiaryを指定しないと,トラックバックの受信がうまくできませんでした.
- tb.rbのパーミッションが644になっていて動かなかった…。ずーと理由が分からなくてふと755にしたら動いた。(ちゃんとREADMEを読まないといけませんね。)
使用方法
TrackBackの受信方法
とりあえずインストールしたら、TrackBackを受信する準備はできているはずです。
TrackBackの送信方法
tDiaryの更新画面を見てください。「TrackBack送信先URL」と「概略」という入力フォームが追加されていると思います。
「TrackBack送信先URL」に、TrackBackを送信したい相手のTrackBack Ping URLを記述します。これは送る相手のページに書いてあるはずです。
「概略」には、TrackBackする内容のサマリを記述します。「概略」は必ずしも指定する必要はありませんが、記述しない場合には日記本文の最初の一部が概略の代わりに送信されます。しかし日記では1日の本文に複数の話題があるので、TrackBackする話題に該当する部分が正しく送られる保証がありません。1日に複数の話題を書いている場合には、必ず「概略」を指定しましょう。
また、その日の日記の「タイトル」も、記入しておくことを強く推奨します。これがないと、やはり先方には本文の一部が送られるので、なんだかよくわからないTrackBackになってしまいます。
記述したら、更新(追加)のボタンを押すと、「TrackBack送信先URL」で記述した相手にTrackBackが送信されます。
最初はまず、自分宛にTrackBackを送信して、正常に送信できることを確認してから、別の人に送信するようにしましょう。
オプション
オプションは、tdiary.confなどで下記のように指定します。 @options['オプション名'] = オプションに指定するモノ
- tb.cgi
- TrackBack ping URL(になるCGI)を指定します。デフォルトは'./tb.rb'です。
例:「tb.cgi」オプションに「./tb.cgi」と設定する場合の記述 @options['tb.cgi'] = './tb.cgi'
- tb.hide_if_no_tb
- 最新表示や月表示モードの場合,リファラの数字列の一番右端にTrackBacks(n)のように TrackBack件数を表示しますが,このオプションをtrueにすると,TrackBack件数が0の場合のみこれを表示しません.デフォルトは false(0件でもTrackBack件数を表示)です.
例:TrackBacks(0)を表示させない場合 @options['tb.hide_if_no_tb'] = true
ToDo?
表示方法を差し替え可能に.
bookmarklet(プラグインに同梱)
javascript:document.getElementsByTagName( "html" )[0].innerHTML.match(/trackback:ping=[\'\"](http.+)[\'\"]/i);var pingUrl = RegExp?.$1;var url = location.href.replace(/\?\d\d\d\d\d\d\d\d(#.*)?$/, '');var title = document.title;var linktag = ' <a href="' + url + '" title="' + title + '">' + title +'</a>';;var x = prompt('Copy Link Tag to Clipboard',linktag);location.href = 'http://YOURSITE/update.rb?plugin_tb_url='+escape(pingUrl);
↑には何の意味があるのでしょうか?
trackbackを受け付けるブログの個別記事で、上のブックマークレットを選択すると、その記事へのトラックバックurlがすでに記入された状態の編集画面に移動します。コピーアンドペーストの手間をひとつ減らすツールです。hogeは自分のtdiaryのアドレスにおきかえてください。
MovableTypeにTrackBackを送ると、リンクが"http://./?YYYYMMDD"になってしまうそうです -- TELL
- そりゃぁ、MTとは関係ないでしょう。tDiary側の設定に何か問題があるのでは。
- ソースを見ると、tb-send.rbとtb-show.rbで"@conf.base_url"と"@conf.index"という変数を読んでいるようですね。HOWTO-make-plugin.htmlを読んでもしやと思い、tdiary.confに"@base_url"の値をつくると、正常にTrackBackされるようになりました。
ちなみに、バージョンはtDiary 1.5.6/ruby 1.6.2/tb.rb 1.8/tb-send.rb 1.6/tb-show.rb 1.12 -- TELL
- 1.5系で本体と異なるバージョンのプラグインを組み合わせてはいけません:-(
- 実行しようとすると、「'document'は宣言されていません」というエラーが出てしまいます。sleipnirで登録してもそうですが、クリックして直接このファイルを実行しようとしても同じエラーが出ます。OSはWinXP(Home Edition)です--yuco?
Keyword(s):
References:[BookmarkletList] [TrackBack] [Trackback先のURLが表示したいURLと違う] [トラックバックが使いたい]