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
なるほど、普通に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)。
素晴らしいです。お疲れ様でした。
バグつぶし(もしあったら)に少しは貢献したいと思います。
> 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 さんだ!(ミーハー)