あんパン

こしあん派

はてなフォトライフにAtomAPIから画像をアップロードする

はてなフォトライフははてなの画像アップローダ。はてなブログの画像もフォトライフに溜まっていく。先日無料版ユーザの月間アップロード制限がいい感じに緩くなって最高。

staff.hatenablog.com

フォトライフにはAPIがあって、画像を投げつけることができる。ドキュメントはこれ。

はてなフォトライフAtomAPI - Hatena Developer Center

昔はWSSE(はてなIDとパスワード)で認証できたんだけどこのドキュメントちょっと古くて、いまはOAuthしか使えない。まぁOAuthの方がセキュアだし仕方ない。ということで、OAuthのConsumer Key、Consumer Secret、Access Token、Access Token Secretを用意してやる必要がある。まずはそのやり方から。

ここから「新しいアプリケーションの追加」を押してアプリケーションを登録する。「OAuth Consumer Key」と「OAuth Consumer Secret」をメモしておく。ついでにフォトライフにアップロードするにはwrite_privateの権限が必要なので、チェックを入れて「変更する」を押す。

Consumer key を取得して OAuth 開発をはじめよう - Hatena Developer Center

このページの下の方にAccess TokenとAccess Token Secretを取得するためのサーバを立ち上げるスクリプトがあるのでこれを使って2つを取得する。Ruby版はこれ。さっきメモしたConsumer KeyとConsumer Secretを書く必要がある。

取得したら以下のスクリプトではてなフォトライフに写真をアップロードできる。bundle exec ./fotolife.rb FILE_PATHみたいな感じで叩けば良い。

gist68a50860f8aa143e4600

OAuth.gem使うときに気をつける必要があって、POSTでリクエストを送るときにヘッダに{'Accept'=>'application/xml', 'Content-Type' => 'application/xml'}みたいなのを含めないとsignatureがおかしいと怒られる。

このAPIで送った画像ははてなフォトライフのトップフォルダに入るので、はてなブログに貼りたいときに注意。

f:id:masawada:20150715210008p:plain:w300

ここから選択できる。

f:id:masawada:20150715204030j:plain

というわけで無事角煮画像をアップロードすることができました。