3/28/2005

続続 AtomAPIPhotoUploader

FlickrがLifeblogすなわちAtom PPに対応したってことなんで、拙作のAtomベースのアップローダもFlickrにあっさり対応...、と思いきや苦難が。

まず、Flickrの認証はX-WSSEなんですが、(たしか)昔のTypePadと同じ、NonceをBase64エンコードしない方式なんで、それに対応しなければならなかった。
まあそれはすでに通った道なんですぐに対応できたものの、いくらやっても「Not a valid mime-type for relation.」という非常に親切なエラーメッセージ。仕方なくNokiaでLifeblogのPC版を落としてインストールし、ポストして、XML on the wireの解析へ。
で、いろいろ変わった実装をしているもんで、どれがキーポイントなのかまた試行錯誤。Lifeblogが生成するAtom entryを見ると、なんと<content>の中身をいわゆるRFC 2045ばりに、72文字という中途半端な数で改行してやがんの。まさか?と思ってそれに対応してみたけど、やっぱりエラーは変わらず。
んで、さらにXMLを眺めてみると、<standalone xmlns="http://sixapart.com/atom/typepad#">1</standalone>という謎の要素を発見。それを挿入してみたらなんと動いちまった。なんてこった。

そういうことで最新バイナリはこちらで最新ソースはこちら。あー、あとFlickrのPOST URLはhttp://www.flickr.com/services/atom/post/なんで念のため。リソースには入れてません。

一応書いておきますが、書くまでもなく、こんなのよりFlickrのアップローダのほうが優れています。僕自身Flickrのアップローダつかってます(笑)。まあAtomなんざ「まだ実装すんな」っていう仕様なんで。でも実装がないまま進む仕様化ってのも危険なんで、実装してみるってのに意味はあるかな、と。なんだそりゃ。

これまでの経緯。
続 AtomAPIPhotoUploader
改め、AtomAPIPhotoUploader。
はてなフォトライフアップローダー

あとついでに発見したのは、NokiaのLifeblog PC版にはCOMAtom.dllというCOMベースのAtom PP実装が含まれてる(と思われる)ってことですね。CreateObject("COMAtom.AtomClient")ってな感じでいけるっぽい。やっぱCOMがキテるらしいってことでオチがつきました。

2 件のコメント:

miyagawa さんのコメント...

あーすいません(あやまることでもないんですがw
http://cognections.typepad.com/lifeblog/2004/12/lifeblog_postin.html

atom:standalone エレメントは Lifeblog 用の atom 拡張で、仕様書の 2.4.1 Posting Lifeblog Items に載っています。

miyagawa さんのコメント...

ちょっと前にこういうのつくってました。
http://blog.bulknews.net/flickr2typepad.cgi
これは flickr から AtomPP (LifeBlog API) をつかって TypePad にポストです。