tumblrのoauth2

これの通り
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はもう使えなくなる)