Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

Movable Type を Account Auto-Discovery に対応させるプラグイン

みんな大好きはてなさんが、はてな外部の Blog 等と、その運営者が持つはてな ID を紐付けるための仕様 Account Auto-Discovery を提起し、様々な議論がなされた結果、おおむね仕様が確定し、また、その具体的な利用方法として「はてなブックマーク日記 - ポイント送信機能の追加について」で述べられている通り、外部 Blog のエントリに対して、はてなポイントを送信できる機能のリリースが発表されました。そもそもの議論の流れについては「Hatena_ID_Auto-Discoveryに関する議論 - 徒委記」にリソースへのリンクがまとめられていますので、ご参照ください。

具体的な利用法が見えてきたからには、なにはともあれこの Blog でもさっそく対応しなければ! というわけで作業にかかったのですが、そもそも Account Auto-Discovery は、なにもはてなのみしか使えないというものではなく、他サービスにおいても同様に使えるような仕様になっています。今後、仕様が変わったり、はてな以外のサービスが追従することもあり得ることを考えると、せっかく Movable Type を使用しているのであってみれば、プラグインで対応するのが得策です。そこで、以下の通り、プラグインを作成してみました。

mt-account-autodiscovery.pl

使い方を説明します。とはいっても非常に簡単で、上記のリンク先 mt-account-autodiscovery.pl を、MT のルートディレクトリ内の plugins ディレクトリ(もし存在しなければ、作成してください)にコピーし、はてな ID を示すのであれば、「メインページ」あるいは「個別エントリーアーカイブ」テンプレートの任意の箇所に、以下の通りの要領でタグを付け加えるだけです。

<$MTAccountAutoDiscovery account_name="hatena_id"$>

以下にオプション一覧を示します。

属性名 説明
account_name 必須。アカウント名を指定します(はてなであれば、はてな ID)。
is_xhtml 任意。ページが XHTML であるか否か。"1" が指定されている場合、アカウント情報をコメントアウトしません。デフォルトは "0" で、コメントアウトされます。
account_service_homepage 任意。アカウントを提供しているサービスのホームページ URI を指定します。デフォルトは "http://www.hatena.ne.jp/" です。

オプションの値を指定することで、今後はてな以外のサービスが AccountAutoDiscovery に対応した場合でも、簡単にアカウント情報を追加できるような仕組みになっています。注意点としては、いまのところ「メインページ」あるいは「個別エントリーアーカイブ」テンプレートにしか対応していません(試してないのでわかりませんが、他のテンプレでもいけるかも)。しかしまぁ、アカウント情報を掲載することの意味からいって、それで十分なのではないかとは思います。また、動作検証は Movable Type 3.171-ja にて行いましたが、ver. 2 系統でも動くはずです。

ver. 2.661 でも動作確認とれた模様