2008年4月20日日曜日

Bloggerでトラックバックをできるようにする

この記事の内容は既に古くなっています。アップデートされた内容は以下の記事をご覧ください。(2010/09/25 追記)
Bloggerでトラックバックをできるようにする(JS-Kit版)

Bloggerではトラックバックができないので、haloscanというサービスを利用してトラックバックができるようにしてみました。

Bloggerでブログを作ってみたのは、昨今のネットの世界ではやっぱりgoogleが色々とすごいらしいし、そのgoogleが提供するblogサービスだからというくらいの理由だった。無料だし。
それで自分でブログを書き始めたら、他の人のブログもよく見るようになってすぐに「トラックバック」というものに気づいた。ブログの世界では当たり前のようにやりとりされているので、自分の所ではどうやるのかと思ったが、Bloggerはトラックバックに対応していないそうな。

もともとbiglobeの「ウェブリブログ」にも形だけは持っていたし、はてなにも登録してアカウント作ってみたりして、普通にトラックバックができるブログサービスに乗り換えようかとも考えてました。

そうは言っても、以下のような事を考えて、トラックバックの為だけでは、乗り換えのコストが大きすぎると思っていたのでした。
  • ブログ始めてまだ半年ですがそれなりに記事はたまってきている。
  • 検索エンジンからのトラフィックも日々発生するようになっている。(全体的なページビューは全然少ないが)
  • レイアウトの設定や記事の作成などの操作はBloggerの方が直感的でわかりやすい。(慣れの問題か?)


でも同じように考える人はたくさんいるだろう、でもググってみたことないな、とふと気づいた。
それで、「blogger トラックバック」ググってみたところ、やっぱりあるんですね。

主にこの記事を参考にさせて頂きました。

で、このHaloscanですが、新Bloggerの場合はテンプレートのxmlをアップロードするとこのサービスを組み込んだテンプレートに自動で修正してくれるので、とりあえず使ってみるのはとても簡単でした。

トラックバック機能のみを追加したい

しかし、これだとコメントもHaloscanで管理する事になってしまうようで、イマイチだなと思いました。
もともと備わっているものはできるだけそのまま使って、足りないものだけを追加したい。
そんなわけで一度変更前のテンプレートに戻しました。

クリボウの Blogger 入門』にもこんな記述がありましたので、なんとかできるだろうと思いました。
トラックバックだけを追加したい場合には、後半のコードのみをコピーして Blogger テンプレートの各記事のフッター部分に貼り付けます。

新Bloggerの場合はテンプレートを自動編集してくれるので、「コードを貼り付ける」なんて手順はないのですが、Haloscanが提示する手順で他のブログツールを選択してみると新Blogger以外は全て手動でコードを貼り付ける事が必要なようです。
そして一応"None of the Above / Manual"という選択肢もあるので、ここを見てみるとこんな記述がありました。
Copy and paste the following code into your page whenever you need a comments link on your page. Substitute "Name" with a different word or number for each new comment page you want:

なるほど、コード中の"Name"の部分は自分で置き換えないといけないのか?

さらに続けて例として
For example if you want people to leave comments about your dog, then you would paste the following code in to your page:

はあ?"dog"って?

こんな説明ではわからんだろうが。

要するにトラックバックを受け付ける記事を識別する値が指定されるようにする必要があるらしい。
記事ごとに異なるわけだから、テンプレートに固定で指定できるわけがない。
他のブログツールを選択した場合に表示されるコードを見比べてみたところ、この部分に対して各ブログツールにおける記事固有の識別子と認識される「変数名」を設定してくれているようです。

では新Bloggerの場合はどう記述すればよいかと言えば、
もちろん自動編集されたテンプレートxmlの中に書いてあるはずだ。
というわけで、さきほどダウンロードしたテンプレートxmlを解析する。

基本的には"start haloscan"と"end haloscan"というコメントが付加されているので、すぐに見つけることができた。
新Bloggerでは"<data:post.id/>"を記述する必要があるようです。

で、せっかく実際に動いた実績のあるコードを見つけたわけだから、Manualの手順で指示された"Name"を置き換えるのではなくて、自動編集されたテンプレートxml内のコードをコピペしました。
最初からそうすればよかった。

テンプレートのどこに貼り付けるかは、自動編集されたテンプレートxmlと変更前のテンプレートxmlと実際のブログの画面表示の3つを見比べながら、少し試行錯誤しました。

これも基本的には自動編集されたテンプレートが参考になります。
記事固有ページの場合とそうでない場合でコメントの表示方法が違うので、テンプレート上もその2箇所に設定が必要でした。いや、必要というかその方がいい感じになる。

記事固有ページの方はもともとあったコメントとバックリンクのあいだに「Trackback」が表示されるようにしました。これでBlogger自身で備えているコメントとバックリンクも活かしつつ、トラックバック機能を追加できたようです。

ただ、記事固有ページの場合に、投稿されたコメントは記事と同じページ内に表示されるのに対して、トラックバックはリンクをクリックしてポップアップを上げるか、ページを移動しないと表示できないのがやや不満。
とりあえず今回はトラックバックができるようになっただけでも、まずは良しとしますか。

動作確認(受信)

そして動作確認として、自分で持っている別のブログからこの記事に対してトラックバックを送信してみた。

はてなからは問題なく送信できました。

しかし、ウェブリログからはどうもうまくいきませんでした。
Haloscanのサイト内にある"Send a Trackback Ping"から送ってみると問題なくすぐに反映されたので、ウェブリログ側の問題(制約?)でしょうか?

トラックバック送信先URLを指定しても「トラックバック送信確認」すら出てきません。
本文中にURLを埋め込み、トラックバック送信先URLを指定しなければ、
「トラックバック送信確認」は出てきますが、そのまま送信してもHaloscan側は何も反応がありません。
時間がかかるのでしょうか?そんなわけないと思いますが。

動作確認(送信)

最後に送信側の動作確認。
送信側は自分でテンプレートを編集した事とは関係ないのであまり心配はないですが、
本記事で言及してトラックバックを受け付けているページにトラックバックを送信してみる事にします。

はてなは一度拒否されましたが、トラックバック送信先の記事のURLの言及をしていなかったのが原因のようです。
ウェブリログはやっぱりダメですね。拒否されてしまいます。確かに同じように非言及トラックバックは拒否するように設定していたのですが。他にもなんか設定がおかしいのでしょうか。

※初投稿は2008/04/19 22:12 その後、作業の進捗に応じて更新してました

3 コメント:

nTakano75 さんのコメント...

トラックバックを設定したので、コメントの確認もしておこう。

nTakano75 さんのコメント...

コメントが複数ある場合も確認しておこう。

nahono さんのコメント...

こんにちは。
突然コメントを差し上げて申し訳ありません。

エキサイトブログから数日前にbloggerに乗り換えましたが、
トラックバックを打つ方法がよくわかりません。

haloscanには登録して、
すべて動作するようにしてしまったのですが、
トラックバックがどれにあたるのかよくわからないのと、
nTakano75さんの記事に書かれている、
コメントもhaloscanでの管理になってしまうのか
少し心配です。

もしよろしければアドバイスをいただけましたら幸いです。

お手数をおかけいたしますが、よろしくお願い申し上げます。