はじめに
Spotify APIを使ったプロジェクトのことはじめに、Postmanで今聞いている曲を取得するところまでをやってみました。
具体的な手順を前に、説明を後に書く形の記事なので、興味があれば最後まで読んでみてください。
前提
作業手順内では以下の内容についての説明を省略しています。
一応理解していなくても再現できるように書いていますが、理解を深めたい場合はご活用ください。
- Spotify API
- Postman
また、SpotifyとPostmanのアカウントが必要になる点に留意してください。
やってみる
APIアプリの作成
まずはSpotify for Developersのダッシュボードへログインします。
ログイン出来たら「CREATE AN APP」をクリック。
そしたら以下のようなフォームが出てくるので、内容を埋めていきます。
-
App name
: アプリ名です。なんでもよし。 -
App description
: アプリの説明。なんでもよい。 -
Website
: 空で大丈夫です。 -
Redirect URI
: 認証時にリダイレクトするURLです。とりあえずhttps://localhost:8080/callback
にでもしておきます。 -
Which API/SDKs are you planning to use?
: 「APIを何に使うか」です。今回は「Web API」のみチェック。
全体が入力出来たら「Save」をクリック。アプリの作成が完了します。
IDとシークレットを取得
アプリには固有のclient_id
とclient_secret
があり、リクエストにこれを含めることでアプリを識別するようになっています。
これは後で使うので、メモしておきます。
上部にある「Client ID」と「Client secret」をメモしておきます。
「Client secret」は「View client secret」をクリックすると表示します。
そしたらアプリ側での下準備は完了です。
Postmanでリクエストを作る
次はPostmanを操作していきます。
Postmanにログインしたら、左上の「新規」ボタンからリクエストを新規作成。
今回は「今聞いている曲を取得」するので、
- HTTPリクエスト:
GET
- URL:
https://api.spotify.com/v1/me/player/currently-playing
を入力しておきます(参考)
そしたらリクエストの設定をしていきます。
「認証」タブをクリック。
Spotifyでは OAuth 2.0という認証フレームワークが使われています。なので、「タイプ」にOAuth 2.0
を選択。
そしたら少し下にスクロールして、「新しいトークンの設定」というところから順に設定していきます。
-
トークン名
: なんでもよい。 -
Grantタイプ
:認可コード
にします。 -
コールバックURL
: 「ブラウザーで認可する」にチェック。あとは後述。 -
認可URL
:https://accounts.spotify.com/authorize
を設定。 -
アクセストークンURL
:https://accounts.spotify.com/api/token
を設定。 -
クライアントID
: さっきメモしたやつ。 -
クライアントシークレット
: これもさっきメモしたやつ。 -
Scope
: 「どのリソースにアクセスする権限が欲しいか」を書くところです。今回はuser-read-currently-playing
と記入。(参考)
ここまで設定出来たらひとまずOK...といきたいところですが、コールバックURLの設定がまだですね。
これは「認証に成功した後にリダイレクトするためのURL」で、 アプリ側で設定したコールバックURIと一致する必要があります。
今回はPostmanのデフォルトでhttps://oauth.pstmn.io/v1/callback
が設定されているので、これをSpotifyのアプリ側に設定します。
Spotifyのアプリ画面を開き、「Setting」から設定画面へ遷移。
ちょっと下に「Edit」ボタンがあるのでクリック。
そしたら「Redirect URIs」の項目にhttps://oauth.pstmn.io/v1/callback
を追加します。
最後に、一番下の「Save」ボタンを押すのをお忘れなく。
ここまで設定出来たら、いよいよトークンを取得します。
一番下の「新しいアクセストークンの取得」を押します。
初めての場合はSpotifyアカウントでの認証を求められる場合があるので、その場合はログインしてください。
問題なく認証出来たら、以下のような画面になります。
「Proceed」もしくは5秒間待つと、取得したアクセストークンのを表示します。
「Use Token」を押すことで、今回取得したトークンをリクエストのトークンとして設定できます。
リクエストを送信してみる
最後に、リクエストを送信してみましょう。
上の「送信」ボタンをクリックします。
そしたら、json形式でなにやらいろいろと送られてきますね。
ひとまず200 OK
という表示が出ていれば成功しています。
送られてきたデータをよく見てみると、今聞いている曲のデータも含まれていますね。
(執筆時点でSrav3R
氏のExtra No.3
という曲を聴いていました)
メモ:Spotify APIの認証について
Spotify APIでは、OAuth 2.0という認証フレームワークが採用されています。
なんだか難しそうに感じますが、要するに
- アプリがユーザーに認証を要求する
このとき、アプリ側は「どのデータにアクセスするよ」ということを伝える(以後スコープといいます) - ユーザーがOKを出す
- Spotifyのサーバーから期限付きの 「リクエストトークン」 が渡される
- 取得したリクエストトークンを使ってデータにアクセスできるようになる
という一連の流れで認証してるかんじです。
おわりに
OAuth 2.0のようなちょっと凝った認証形式のAPIを触るのは初めてだったので、こういうのもあるんだな~と勉強になりました。
実装ではこの機能をバックエンドに組み込む必要があるので、その辺も追々まとめられたらと思います。