http://b.hatena.ne.jp/help/api
自分のブックマークに投稿したブックマークデーターはエクスポート機能により一括でダウンロードすることが可能となっております。(データのエクスポートは設定画面より可能です。)
このデータのエクスポートを外部プログラムからも行えるよう、エクスポート用URIは Cookie 認証以外に はてなブックマークAtomAPIに同じくWSSE認証での認証が行えるようになっています。各フォーマットごとのエクスポートURI (例えば Atomフィードでのエクスポートの URI は http://b.hatena.ne.jp/dump) になりますが、この URI に対して WSSE 認証を行うことでブラウザ以外のプログラムからでも直接データのダウンロードが可能です。
■ WSSE認証
AtomAPIの認証にはWSSE認証が利用されます。はてなブックマークAtomAPIの利用にはWSSE認証が必須です。WSSE認証の詳細に関しては、はてなフォトライフAtomAPIのWSSEの項 (http://d.hatena.ne.jp/keyword/%a4%cf%a4%c6%a4%ca%a5%d5%a5%a9%a5%c8%a5%e9%a5%a4%a5%d5AtomAPI?kid=88110#wsse) を参照してください。
■ WSSE認証
AtomAPIの認証にはWSSE認証が利用されます。はてなフォトライフAtomAPIの利用にはWSSE認証が必須です。WSSE認証の詳細に関しては http://www-128.ibm.com/developerworks/webservices/library/ws-secure/ (英語) を参照してください。
・・・たらいまわし?しかも何で外部リンクがdeveloperworks・・・。しかも全然詳細情報じゃないし。abstractじゃないのよ。
まあいっか。
送信するX-WSSEヘッダのサンプルは以下のようになります。
X-WSSE: UsernameToken Username="hatena", PasswordDigest="ZCNaK2jrXr4+zsCaYK/YLUxImZU=", Nonce="Uh95NQlviNpJQR1MmML+zq6pFxE=", Created="2005-01-18T03:20:15Z"
Username
ユーザー名。(はてなフォトライフAPIでははてなアカウントのid)
Nonce
HTTPリクエスト毎に生成したセキュリティ・トークン
Created
Nonceが作成された日時をISO-8601表記で記述したもの
PasswordDigest
Nonce, Created, パスワード(はてなアカウントのパスワード)を文字列連結しSHA1アルゴリズムでダイジェスト化して生成された文字列を、Base64エンコードした文字列
なるほど。
例に載ってたサンプルスクリプトを実行してみる。
$ perl apisample.pl kkobayashi_a **** HTTP/1.1 200 OK Connection: close Date: Sat, 13 Jan 2007 03:17:00 GMT Server: Apache Content-Length: 372 Content-Type: application/x.atom+xml; charset=utf-8 Client-Date: Sat, 13 Jan 2007 03:16:58 GMT Client-Peer: 125.206.198.150:80 Client-Response-Num: 1 X-Framework: Hatena/2.0 <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://purl.org/atom/ns#"> <link type="application/x.atom+xml" rel="service.post" href="http://f.hatena.ne.jp/atom/post" title="kkobayashi_a's fotolife" /> <link type="application/x.atom+xml" rel="service.feed" href="http://f.hatena.ne.jp/atom/feed" title="kkobayashi_a's fotolife" /> </feed>
ほほう。