Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

サムネイル付きソーシャルブックマークサービス BlogMarks で遊ぶ

kyo さんに教えていただいた、サムネイル付きソーシャルブックマークサービス BlogMarks が素敵風味。このサービスは、普通の SBM に加えて、クリップ先のサムネイル画像も取得してくれるというもので、サムネイル付きの SBM 自体はまぁすでにあるわけですが、似たようなサービスがたくさんある昨今、単にブックマークだとかサムネイルだとかいわれてもつまらない。やっぱ、いじくりまわしたくなるような仕掛け、具体的にはオープンな API が必要なんですよ! 日本のサービスにはそこんところが欠けてるところが多くて、つまらないと思います。

とうわけで、さっそく BlogMarks の Atom API を叩いて遊ぼうと Perl でモジュールを書いて、とりあえず使いたい GET と POST ができたので、さてテストすっかー、という時点で行き詰まりました……。正しいユーザ名 + パスワードを送ってるのに、認証でハネられる……。なんでだ……というわけで、使用した XML::Atom の実装と、API ドキュメントの認証関連箇所とを見比べてみると、Web Services Security: Username Token Profile V1.0 [PDF 注意] で定義されている Nonce のエンコード方法が違う……。XML::Atom の方は Base64エンコードしていて、API ドキュメントの方では素で送るようになっています。そこで、仕様をのぞいてみました。

/wsse:UsernameToken/wsse:Nonce/@EncodingType
This optional attribute URI specifies the encoding type of the nonce (see the definition of <wsse:BinarySecurityToken> for valid values). If this attribute isn't specified then the default of Base64 encoding is used.

Web Services Security: Username Token Profile V1.0 - Page: 9-10, Line: 182-185

というわけで、EncodeType が特に指定されていなければ、Base64エンコードするという風なニュアンスを感じます(でもこれって、SOAP での話ですよね……)。まぁよくわからないので、いちおうこんな記述もありますが、どうでしょうか……? 的なメールを送ってみました。