高木のブログ

【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"
}

SNS でシェアする


ytkg

Written by ytkg, Twitter, GitHub