AndroidでTumblrへPhoto投稿
Tumblr APIのドキュメント見ると、photoのdataは「URL-encoded binary contents」って書いてあるけど、具体的に何なのかよくわからない。
http://brainbackup.net/post/post-images-to-tumblr-using-phonegap-and-jsoauth.html
↑ここらへん読むと、hexにしてPercentEscapeしたものっぽいかんじ。
iOSだとTumblrUploaderというのがある。
https://github.com/vvanhee/TumblrUploadr
このソースを元にJavaに移植してみたけど401が出てうまくいかない。どうも認証のsignatureを修正しないといけない?っぽい。
OAuthは signpost 使ってるけどソース変更するのはイヤなので、別の方法を模索。
Tumbletailはmultipartで送っているのでそれを試してみる。
multipartでOAuthするときは、file以外のパラメータでsignature作ってAuthorization headerに入れればいい。
このとき注意することは、signature作るときはURLエンコードしたパラメータを使って、multipart body作るときはURLエンコードされてないパラメータを使う。
あと、JavaのURLEncoderは半角スペースを+に変換するけど、Tumblrに送るときは%20にしないとダメらしい。
で、できたソース↓
2 Notes/ Hide
- nbbb liked this
- cathandblog posted this