Vox の Atom API

観測気球

収集物の記録書庫 a data archive of collection -- collectible toys

[要旨] いろいろ調査というか実験をしてみたところ、Vox でも Atom API が使えることがわかりました。ただし、まだ使える API は限定的で、とりあえず投稿するだけなら問題ない範囲で実装されているようです。
[キーワード] Vox,Atom API,Atom Publishing Protocol

« 楽天の XML Web サービス その2 | トップページ | 今週のお買い物 (2006.09.10~09.16) »

2006.09.15

Vox の Atom API

昨日(というか、この記事を書いている途中で日付が変わってしまったので、一昨日ですね)は、「Blog クライアントを使って Vox に投稿できるのかと思いきや……」という記事を書きましたが、その後、引き続き、自作のBlogクライアントをいじりつつ、Vox の Atom API (Atom Publishing Protocol) がどこまで利用可能なのか、調べてみました。

「ここうさぎ」がエンドポイントURLの発見に失敗していた原因は、auto-discovery の過程で取得、解析する(ブログのトップページ直下に存在する) atom.xml の中身が想定しているものと微妙に違っていたからでした。

「ここうさぎ」では

<link rel="service.post" type="application/x.atom+xml" ……

というのを想定しているのですが、Vox の atom.xml の中身は

<link rel="service.post" type="application/atom+xml" ……

のようになっています。 x.atom+xml と atom+xml の違い。 x. が付いているか、付いていないか。これは、(少なくともクライアント側というか、受信側は)どちらでもいいように作っておいた方がいいんでしょうね。ちなみに、blogger.com の Atom API は送信時、受信時とも、x. 付きの方を使います。x. を付けずにリクエストを送信すると、「x. を付けろ!」と怒られてしまいます(投稿に失敗します)。Vox は x. があってもなくても、ちゃんとリクエストを受け付けてくれます。なので、「ここうさぎ」の方も両方とも受け入れるように直すことにしました(受信時はどちらでも受け入れ、送信するときは相手側に合わせます)。

この修正で、Vox のエンドポイントURLの自動取得、ブログ一覧(ブログ名、ブログURL)の取得は問題なくできるようになりました。

次に、投稿済み記事一覧の取得。要するに、「ブログ一覧取得時に提示されたエンドポイントURL」のうち svc=post が含まれる URL に GET リクエストを出せば「記事一覧の取得」になるんですが、このリクエストに対する応答が、何と 501 Not Implemented でした。まだ、実装されてないんですね!! BlogWrite が「ブログの中身がない」とエラーダイアログを出した原因はこれでしょう。

その次。カテゴリ一覧の取得。Vox ではカテゴリに相当するのはタグなんですが、「ブログ一覧取得時に提示されたエンドポイントURL」の中に、カテゴリ取得用のもの(svc=categories が含まれる URL)は見当たりません。実装されてないということでしょう。

そして、いよいよ記事の投稿。これは、「ブログ一覧取得時に提示されたエンドポイントURL」のうち svc=post が含まれる URL に POST リクエストを出せば OK。POST リクエストのボディ部分に、投稿しようとしている記事の題名、内容、カテゴリ(タグ)などを Atom 準拠の形式で埋め込みます。

投稿に成功すると、記事のIDを含む応答がサーバから返ってきます。記事のID は id 要素の属性として格納されています。Vox 以外の Atom API 対応 blog では、他にも rel="service.edit" な属性をもつ link 要素の entry_id 属性として格納されています。「ここうさぎ」では、entry_id 属性から記事IDを取り出しているのですが、Vox ではこの方法が使えません。entry_id が見つからない場合は、id 要素から抽出するようにすることで、Vox にも対応しました。

で、この「記事のID」を使って、記事の編集(上書き投稿)[PUTリクエスト]や削除[DELETEリクエスト]を行なうことができる訳ですが、Vox には、まだ編集や削除の API は用意されていないようです。試しにそれっぽいリクエストを組み立てて送信してみましたが、なぜか常に 200 OK が返ってくるだけで、編集も削除も全く実行されませんでした。

まとめ

結局、Vox で現時点で使える API は

  • blog 一覧の取得
  • 記事の投稿 (タグの指定が可能)

の2つだけのようです。

投稿者: tsupo 2006.09.15 午前 12:03 | 固定リンク | このエントリーをはてなブックマークに追加 | このエントリを del.icio.us に登録 このエントリの del.icio.us での登録状況 | このエントリを Buzzurl に追加このエントリの Buzzurl での登録状況 | このエントリをlivedoorクリップに登録 このエントリのlivedoorクリップでの登録状況 このエントリをlivedoorクリップに登録している人の数 | 酢鶏巡回中

楽天市場


Blogクライアント」カテゴリ内の最近の記事

ウェブログ・ココログ関連」カテゴリ内の最近の記事

プログラミング」カテゴリ内の最近の記事

品揃え豊富で安い!NTT-X Store


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/6737/11899191

この記事へのトラックバック一覧です: Vox の Atom API:

コメント

コメントを書く




※イタズラ防止のため、メールアドレスを入力しないと投稿できません。

次からのコメント入力の手間を省くために、名前やメールアドレスをcookieに記憶しますか?


URL を入力すると、その URL にリンクがはられます。
なお、メールアドレスは公開されません。ご安心ください。


ワード

ニッセン

fujisan.co.jp

楽天市場