« 2004年7月期 テレビ番組チェック表(こうさぎ) | トップページ | BlogWrite 0.9.9 »
2004.07.08
ココログと livedoor Blog の Atom API の違い
観測気球さんはおそらくココログではとりあえずテスト出来ているが、BloggerやLivedoorでAtom APIのテストをしようとすると、「Invalid Login」とかなってしまいませんか?
HepCat Dev and Test: ココログ Atom API の小さくて大きな問題
非常に気になったので、livedoor Blog のアカウントを取得して、調査してみました。
確かに、ココログの Atom API の調査用に作成した Atom API クライアントで livedoor Blog にアクセスしようとすると、
Invalid Login になりました。一方、XML::Atom では、問題なく livedoor Blog にアクセスできます
(その代わり、XML::Atom では、ココログにアクセスできません)。
で、どこがどう違うのかを調べるため、以下の記事を参考に、XML::Atom が実際に livedoor Blog に送信する電文の中身を見てみました。
CPAN で LWP::Authen::Wsse をいれとくと (XML::Atom 最新版をいれると勝手に入る)、コマンドラインプログラム GET, POST とかで AtomAPI が操作できるようになる。
blog.bulknews.net: LWP::Authen::Wsse
早い話が、
GET -U http://blog.livedoor.com/atom
を実行してみました。
以下のような文字列を送っていることが判明。
GET http://blog.livedoor.com/atom Authorization: WSSE profile="UsernameToken" User-Agent: lwp-request/2.01 X-WSSE: UsernameToken Username="tsupo", PasswordDigest="hXt(途中20バイト省略)D8WM=", Nonce="Cc9EjFjsp7s1UPn+l2sMZeRtjHY=", Created="2004-07-08T02:04:10Z"
一方、拙作の Atom API クライアントは、以下のような文字列を送信しています。
GET http://blog.livedoor.com/atom HTTP/1.1 User-Agent: httpWsse/1.0 (written by H.Tsujimura) Host: blog.livedoor.com X-WSSE: UsernameToken Username="tsupo", PasswordDigest="bAN(途中20バイト省略)C9gI=", Created="2004-07-08T06:13:43Z", Nonce="284a170131caea5cc3e67ee197413d5198116426"
この違いは、そのまま、ココログの Atom API と livedoor Blog の Atom API の違いでもあります。
注目するところは X-WSSE: の行で、以下の違いがあります。
- トークンの並び順 (これは問題ではない可能性あり)
ココログ: Username, PasswordDigest, Created, Nonce の順
livedoor Blog: Username, PasswordDigest, Nonce, Created の順 - Nonce の内容
ココログ: 任意の40バイトの平文
livedoor Blog: 「任意の20バイトの文字列」を base64 エンコードしたもの - PasswordDigest の生成方法
ココログ: Nonce, Created, Password の中身(文字列)をこの順に連結したものを SHA1 暗号化した結果を、さらに base64 エンコードしたもの
livedoor Blog: 「base64 エンコードする前の Nonce」, Created, Password の中身(文字列)をこの順に連結したものを SHA1 暗号化した結果を、さらに base64 エンコードしたもの
以上のことを念頭に、拙作の Atom API クライアントをココログ、livedoor Blog の両方に対応するように修正してみました。
その結果、livedoor Blog に対しては、以下のような文字列を送信するようになり、問題なく動作するようになりました。
GET http://blog.livedoor.com/atom/ HTTP/1.1 User-Agent: httpWsse/1.0 (written by H.Tsujimura) Host: blog.livedoor.com X-WSSE: UsernameToken Username="tsupo", PasswordDigest="Ms8(途中20バイト省略)h5zc=", Nonce="MjRjOTMxMDEzMWNhZWI3YWNiZTk=", Created="2004-07-08T06:26:57Z"
おそらく、TypePad系はココログと同じやり方で OK。一方、Blogger は livedoor Blog と同じやり方で OK だそうですので、とりあえずは、これで先に進めそうです。
投稿者: tsupo 2004.07.08 午後 03:42
| 固定リンク
|
|
| ![]()
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: ココログと livedoor Blog の Atom API の違い:
» ココログの Atom API の現状確認 - TypePad 1.5 移行でどうなったか from 観測気球
TypePad 1.5 になっても、WSSE の方式は従来通りのままでした。ということで、MovableType と TypePad とで異なる WSSE を使う必要があるという変な状況が発生しています。 続きを読む



