これの通り
https://www.tumblr.com/docs/en/api/v2#oauth2-authorization
とりあえずAPI叩くまで解説
アプリの登録を以下のURLから行う
https://www.tumblr.com/oauth/register
次にパラメータを組み立てて認可リクエスト
scopeにoffline_accessがあるとrefresh_tokenがもらえて永続的に使えるけど、無い場合は認可リクエストからやり直す一時的なアクセストークンしかもらえない
let params = new URLSearchParams();
params.append('client_id', 'xxxxxxxxxxxxxxxxxxxxx');
params.append('response_type', 'code');
params.append('scope', 'basic offline_access');
params.append('state', 'hogehoge1');
let urlParams = params.toString();
console.log(`https://www.tumblr.com/oauth2/authorize?${urlParams}`)
あとはリダイレクトURLにコードとstate付きで返ってくるので
https://example.com/?code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&state=hogehoge1#_=_
それみてアクセストークンと交換
コードの有効期限は結構短いので急ぐこと
curl -F grant_type=authorization_code -F code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-F client_id=xxxxxxxxxxxxxxxxxxxxxxxxx \
-F client_secret=xxxxxxxxxxxxxxx https://api.tumblr.com/v2/oauth2/token
リフレッシュトークンからアクセストークンを取得
ちなみにアクセストークンは40分くらいで有効期限が切れる
curl -F grant_type=refresh_token -F refresh_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-F client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-F client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxx https://api.tumblr.com/v2/oauth2/token
あと注意なんだけど、refresh_tokenは使ったら、上記APIから新しいrefresh_tokenが来るので次回はそれを使うこと
(一度使ったrefresh_tokenはもう使えなくなる)