【Spotify Web API】アクセストークンの取得と更新(リフレッシュ)
2023/01/09
Spotify Web API を使うために必要なアクセストークンの取得方法とその更新(リフレッシュ)方法
認証フローが3つあり、今回の記事は「Authorization Code Flow」のやり方
事前準備
アプリを作成する
https://developer.spotify.com/dashboard/applications でアプリを作成し、Client ID と Client Secret を取得する
Redirect URL を設定する
アプリ詳細画面の「EDIT SETTINGS」から Redirect URL を設定する
ローカルで使うだけなのでなんでも良い
今回は「 http://localhost:3000 」を設定した
アクセストークンの取得
認証コードの取得する
以下の URL にブラウザでアクセスする
https://accounts.spotify.com/authorize?client_id={Client ID}&response_type=code&redirect_uri=http://localhost:3000&scope=user-read-currently-playing
client_id に事前準備で取得した Client ID を指定する
scope には許可したいものを指定する(今回の例では user-read-currently-playing)
アプリの認証画面が表示されるので「同意する」をクリック
すると以下のような URL にリダイレクトされるので、code の値をメモしておく(存在しない URL なので、エラーが表示されているが問題なし)
http://localhost:3000/?code=HOGEHOGE_CODE
Client ID と Client Secret を Base64 でエンコードする
$ echo -n {Client ID}:{Client Secret} | base64
BASE64_ENCODE_VALUE=
アクセストークンをリクエストする
$ curl -X POST https://accounts.spotify.com/api/token \
-H "Authorization: Basic {Client ID と Client Secret を Base64 でエンコードした値}" \
-d grant_type=authorization_code \
-d code={先ほどメモした code の値} \
-d redirect_uri=http://localhost:3000
{
"access_token": "HOGEHOGE_ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "HOGEHOGE_REFRESH_TOKEN",
"scope": "user-read-currently-playing"
}
これでアクセストークンを取得することができた
リフレッシュトークンも必要な値なので、メモしておく
アクセストークンの更新(リフレッシュ)
アクセストークンには1時間の有効期限がある
有効期限が切れたらリフレッシュトークンを使って更新する必要がある
$ curl -X POST https://accounts.spotify.com/api/token \
-H "Authorization: Basic {Client ID と Client Secret を Base64 でエンコードした値}" \
-d grant_type=refresh_token \
-d refresh_token={リフレッシュトークン}
{
"access_token": "HOGEHOGE_NEW_ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "user-read-currently-playing"
}