« RSDFinderの実装 | メイン | どう? »

2006年04月27日

RSDとは?

さて、前ページで「マジックな機能」として紹介したのが、「使えるAPIを自動判定する!」という強烈な機能だ。ただし、これはちょっと調査してみたが、ブログだからと言って「必ずある!」というものではない。まだまだ普及の途中のようだが、実に良い機能なので、ぜひぜひ紹介したい。

MovableType のインデックス・テンプレートの中に、「Atomフィード」や「RSS 1.0」などと並んで「RSD」というテンプレートがあるのは御存じか? これがマジックの根源である。このファイルはブログのトップページに atom.xml とか index.rdf なんかとどう様に作られる。中身はたとえばこんな感じだ。

<?xml version="1.0" ?> 
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
  <service>
    <engineName>Movable Type 3.171-ja</engineName> 
    <engineLink>http://www.movabletype.org/</engineLink> 
    <homePageLink>http://www.nurs.or.jp/‾sug/blog/</homePageLink> 
    <apis>
      <api name="MetaWeblog" preferred="true" 
         apiLink="http://www.nurs.or.jp/‾sug/mt/mt-xmlrpc.cgi" blogID="1" /> 
      <api name="Blogger" preferred="false" 
         apiLink="http://www.nurs.or.jp/‾sug/mt/mt-xmlrpc.cgi" blogID="1" /> 
    </apis>
  </service>
</rsd>

これが「このブログが受け入れ可能なXML-RPC API」を示していてくれているのである。これを見ると、

XML-RPC を受け付けるURLは...
apiLink って属性の「http://www.nurs.or.jp/‾sug/mt/mt-xmlrpc.cgi」だ!
ブログIDは?
blogID 属性 で「1」だ!
で、APIは?
「MetaWeblog」と「Blogger」の両方がOKだ。ただし、「preferred="true"」とあるのは、「MetaWeblog」だから、こっちがオススメだ。

という具合に、「欲しかった情報」がぜーんぶ手に入る。勿論「MovableType API」が使えるかどうか、は「engineName」を見て「ホントに MovableType ?」を確認すればいい。

とはいえ...この rsd.xml は MovableType でこそ実装されている機能だが、他のブログでの普及はまだまだのようだ。だから「必ず使える!」というような代物ではない。「あったらラッキー!」くらいに捉えるのが現実的なようだ。しかし、今見たように「大変良い」機能である。だから、フライングしてこの機能を使っちゃおう。

で、更に、ブログのトップページには、

<link rel="EditURI" type="application/rsd+xml" 
  title="RSD" href="http://www.nurs.or.jp/‾sug/blog/rsd.xml" />

のように RSS なんかと同様に埋め込まれる。だから、HTMLのページから rsd.xml を拾い出すことも出来てしまう。ここらへんの実装も考慮して、この RSD を扱うクラスを書いたわけである。

投稿者 sug : 2006年04月27日 22:27

コメント