そっとチラ裏@はてなブログ

はてな女子みたいなステキなブログが書きたいな!オッサンだけどな!

@wikiに、はてなブックマーク用Account Auto-Discoveryを設定する方法

 先日の記事 絡みで。
 無料 wiki レンタルサービス「@wiki( アット ウィキ )を利用して作った自分が管理するwikiと、はてなブックマークを以下のように連携させたい、という場合の話(非常にニッチなネタだw)。

 これらの要望は、はてなが提示している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】@wikiには、各ページ共通のヘッダー/フッターを設定する機能がない
  • 【2】@wikiでは、各種コードを埋め込めるのは、セキュリティー上の理由から、「管理者のみ編集可能」な設定のページのみ

 まず、問題点【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とを紐付けたくない場合は、注意するように。