[背景]
何やらhaloscanという会社がJS-kitに買収されて, 今までregisterさえすればbloggerでも簡単にtrackback機能を実装できたのに, registerが出来なくなって皆四苦八苦している模様。そこで, 1日費やして, 何とかjs-kitだけでtrackback機能を実装してみようと頑張ってみました。
正直javascriptなんて全く触れたことないけど, カンと気合で出来るところまでやってみました。以下, その結果発表。
※注意
環境チェックとかコードのチェックとかを行っていないので, この通りにやっても動かないかもしれません.
---------------------------------------
[結果]
trackbackのpingが送られたら, それを自動で確認するところまではできました。キャプチャ画像を使って説明すると,
trackbackが送られたら,
とりあえず自動で認識してくれる.
[大まかな開発方針]
JS-kitのコメント機能なんて入らないけど, trackback機能は欲しい. だから, JS-kitのtrackback機能が実装している部分をうまくコピペして繋ぎ合わせていけばできるんじゃないか? という信念に基づいてひたすらコードを解析&改造。
[事前準備]
1. JS-kitのYour sites画面においてtrackback関連のチェックボックスをすべてチェックしておきます.
2. 手頃なトラックバック練習場を使って, 手動トラックバック送信システムの使い方を自習します。(作者のNI-Lab.様に感謝)
http://www.nilab.info/lab/trackback.html
3. JS-Kit Admin Guide (document)をひたすら読みこみます.特に, "trackback"について記されている章(P.40)は精読します.
http://js-kit.com/support/js-kit-admin-guide.pdf
※ documentのtrackback/pingbackの章に書かれている色文字の部分について,
your.blog.com = yasu1987.blogspot.com
path = data:post.id
として置換することにします。
[具体的な実装方法]
1. bloggerのedit html画面において, 以下の部分を探す。
<?xml:namespace prefix = b /><b:include name="postQuickEdit" data="post"></b:include>
</span><p></p>
/*** ココ ***/
<p class="post-footer-line post-footer-line-2"><span class="post-labels">
2. 上述の「ココ」の部分に以下のコードをコピペ
(※ yasu1987.blogspot.comの部分には自分のドメインを入力)
<rdf:RDF xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:trackback='http://madskills.com/public/xml/rss/module/trackback/'>
<rdf:Description expr:dc:identifier='"http://yasu1987.blogspot.com/"+data:post.id' expr:dc:title='data:post.id' expr:rdf:about='"http://yasu1987.blogspot.com/"+data:post.id' expr:trackback:ping='"http://js-kit.com/trackback/yasu1987.blogspot.com/"+data:post.id'/>
</rdf:RDF>
<link expr:href='"http://js-kit.com/rpcxml/yasu1987.blogspot.com/"+data:post.id' rel='pingback'/>
<div expr:permalink='data:post.id'/>
<div>Trackback URL of this post is <a expr:href='"http://js-kit.com/trackback/yasu1987.blogspot.com/"+data:post.id'>HERE</a></div>
3. 無事にセーブできたら, 手動トラックバック送信システムを使って, "HERE"のリンク先URLに対してpingを送信してみます。
※ entry URLに存在しないURLを入力すると, NO URLというerrorが起こります。
4. JS-Kitのmoderation画面でpingが来たことを確認.
上図を見ると, pingが送信されたことを自動的に検知できたことがわかります。これで, 少なくともtrackbackしたい人がいるんだー, ということはわかるようになりました。ちなみに, 現在のこのブログは, このままの状態で放置しています。
[今回出来なかったこと&わかっていること]
・trackbackのpingが来たことは自動で検知できたけれど, それを表示する方法が分からない.
・同じentry URLからpingを送ると, 既に登録されているというerrorが起こる。つまり, どこかしらにちゃんとtrackbackのpingの履歴は保存されている. その保存先がわかればなんとかなるかも。
うー, 眠いので, 今日はここまでにします。個人的にはJS-Kitさんかgoogleさんのいずれかがtrackback機能をしっかり実装してくれることを切望。ではでは。もう寝ます。