読者です 読者をやめる 読者になる 読者になる

あんパン

こしあん以外は認めない

はてなフォトライフに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

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