000065

June 24, 2004

livedoor blogの Atom API

blog.livedoor.com Atom API Specによると、

XML::Atom::Client: 日本語は UTF-8 bytes で入れると、base64 エンコードされる。 # UTF-8 文字列でいれるとサーバエラーになる>調査中

既知の問題: dc:subject にマルチバイト文字列で syswrite エラー

ってーゆーと…もしかして使えない…?
XML::Atomと言えば、MovableTypeやTypePadを作ったBenさんが(主に?)作って、Miyagawaさんとかパッチかましてる奴だから、MTやココログでも同じなのかも…
そういえば、MTのXML-RPCでエラー文字列に日本語文字列混じると日本語復帰できないBase64エンコードの文字列が返ってくる 気持ちの悪い仕様と同じだ。
ココは一つ大和魂こめて頑張ってください>中の人。解決お疲れ様でした。 Base64の方は当方の誤解だった模様。

AtomAPI対応はもうしばらくおあずけです。対応しても使えないのじゃ意味ありませんから…着手して見ます。
しかし、どこまでも付いて回るマルチバイトの罠。

Atom APIを使うと、カテゴリの取得、設定が曖昧(出来ないというかなんというか…)なのは分かります。 なんといってもまだ標準化されていませんから。ましてや独自実装でAPIの乱立はやはり避けたいし。

Posted by HepCat at June 24, 2004 02:18 PM | TrackBack

Comments

> XML::Atom::Client: 日本語は UTF-8 bytes で入れると、base64 エンコードされる。 # UTF-8 文字列でいれるとサーバエラーになる>調査中

こちらは単純にAPIというかPerlモジュールクライアント側の問題(というか仕様)なので不具合ではありません。普通に UTF-8 あるいは Base64 で送れば使えます。

> 既知の問題: dc:subject にマルチバイト文字列で syswrite エラー

これはいまのところ原因不明な問題で、サーバ側のどこかでライブラリのエラーがでているようで、調査中です。

Posted by: miyagawa at June 24, 2004 02:37 PM

うわぁ、miyagawa さんだ!(ミーハー)

なるほど、普通にUTF-8で送るとXML::Atom::Client
がBase64でエンコードする、という事なのでしょうか。

dc:subjectは使わないようにして見ます。
元々Atom APIには無いものですし。

やる気が出てきました。
わざわざすみません。お騒がせしました。

Posted by: HepCat担当 at June 24, 2004 04:31 PM

ココログでの Atom API による記事の投稿は UTF-8 で特に問題は起きませんでした。

ただし、投稿した記事の取得ができない(サーバ側で perl のエラー発生)という問題があります。

現時点では、Atom API は使わない方がいいと思います。

Posted by: tsupo at June 24, 2004 04:39 PM

dc:subject マルチバイトの問題も解決しました。結局これも Perl クライアント側の問題でしたので、他の言語から使う場合は普通に UTF-8 あるいは Base64 で送ればよいと思われます。
http://blog.bulknews.net/mt/archives/001056.html

Posted by: miyagawa at June 24, 2004 04:43 PM

tsupo さん
大変お世話になってます。

確かに問題ありそうですね。
人柱版を作って検証できるようにしてみましょうか…。
テストするにもクライアントの種類は多い方が良い
かもしれませんし。
なんにしても、クライアントだけでなく、AtomAPIのサーバー実装も
TypePad系(+MT3)とLivedoor系の二つ出来てバグの
切り分けが楽になりそうです。

Posted by: HepCat担当 at June 24, 2004 05:04 PM

miyagawaさん
大変お世話になってます(なってばっかー>Bulkfeeds)。

素晴らしいです。お疲れ様でした。
バグつぶし(もしあったら)に少しは貢献したいと思います。