@wikiに、はてなブックマーク用Account Auto-Discoveryを設定する方法
先日の記事 絡みで。
無料 wiki レンタルサービス「@wiki( アット ウィキ )」 を利用して作った自分が管理するwikiと、はてなブックマークを以下のように連携させたい、という場合の話(非常にニッチなネタだw)。
- 自分が管理するwikiがブックマーク登録された際に、コメント一覧非表示機能 を利用したい。
- 自分が管理するwikiがブックマーク登録された際に、エントリーページで商品を紹介機能 を利用したい。
- 自分が管理するwikiがブックマーク登録された際に、「あなたへのお知らせ」 へ通知が来て欲しい
これらの要望は、はてなが提示しているAccount Auto-Discovery用のコードをwikiページに埋め込むことで可能になる。
Account Auto-Discovery は、ページの中から、そのページの作者のオンラインサービスのアカウント名を自動で探し出すために考案された仕様です。Account Auto-Discovery 仕様に従ってはてなのアカウント名を含む RDF 文書を埋め込むことで、そのアカウントではてなブックマークのシステムにはてなIDを知らせることができます。
http://b.hatena.ne.jp/help/nocomment#plus-note3
■問題点
しかし、@wikiで各種のコードを埋め込む際には幾つかの問題点がある。今回のAccount Auto-Discovery用のコードに限らず、アクセス解析コード等も同様だが…
まず、問題点【1】。つまり、各ページ共通で読み込むコードを設定する方法が無い。どうするのか?
シンプルな解決方法は、各ページのサイドに必ず読み込まれる「メニュー」ページにコードを埋め込むという方法。
次に、問題点【2】。Account Auto-Discovery用のコードを@wikiのページに埋め込むためには、@wikiのページ上でHTMLコードを記述可能にするプラグイン「html2」を使用する必要がある。
しかしこのプラグインは、セキュリティー上の理由から、「管理者のみ編集可能」な設定のページでしか使えない。
問題点【1】の解決方法として「メニュー」ページにコードを埋め込む方法を選択した場合、「メニュー」ページの編集権限を「管理者のみ編集可能」しなくてはならなくなる。メニューを誰でも編集可能にしておきたい場合は、どうすれば良いのか?
■解決方法
「メニュー」ページの編集権限を「誰でも編集可能」のままで、「メニュー」ページにAccount Auto-Discovery用のコードを埋め込むにはどうしたらよいのか?
この問題を解決するためには、他のページを取り込むプラグイン「include」を活用する。
つまり、次のような手順だ。
- 【手順1】編集権限を「管理者のみ編集可能」に設定したページを新規作成する
- 【手順2】手順1で新規作成したページに、「html2」プラグインを利用して、はてなブックマーク用のAccount Auto-Discoveryコードを埋め込む
- 【手順3】手順1で新規作成したページを、「include」プラグインを利用して、「メニュー」ページで取り込む
このようにして、コードを埋め込んだ編集権限を「管理者のみ編集可能」に設定したページを取り込むことで、編集権限が「誰でも編集可能」なページにもコードを読み込ませることが可能になる。
これは、自分が管理する@wikiサイトのページに、ブログパーツやHTMLで記述した自作部品を埋め込む場合にも、使える手法だ。自分以外にも何人かの@wiki管理者がこのテクニックを使っているのを目にしたことがある。
■注意点
はてなブックマーク用Account Auto-Discoveryコードを自分が管理する@wikiサイトに埋め込む場合には、一つ注意点がある。Account Auto-Discoveryコードには、はてなIDが明記される。つまり、HTMLのソースコードを見ると、そのwikiの管理者が誰かバレてしまう のだw
自分の管理する@wikiサイトと、自分のはてなIDとを紐付けたくない場合は、注意するように。