玩玩看 KKBOX 與 Spotify 的 OAuth 2.0
- Web
- 19 Sep, 2020
心血來潮想玩看看 KKBOX 的 Open API,也一起測試了 Spotify 的部分。這次主要是試試看 OAuth 2.0 Authorization Code Flow 的授權流程,過程都是利用 Postman 來操作。
實驗流程
- 到 KKBOX/Spotify 開發者頁面,新增一個應用程式,取得一組 client id 跟 client secret,並設定 redirect uri。
- 取得使用者的授權 KKBOX: GET https://account.kkbox.com/oauth2/authorize
Spotify: GET https://accounts.spotify.com/authorize
將需要的 request 參數(client_id、redirect_uri、response_type 等等)組一組,貼到瀏覽器,就可以導到 KKBOX/Spotify 應用程式授權的畫面,登入並同意後就會導向被到應用程式指定的 redirect_uri,我是亂填一個網址: http://localhost:3000。雖然導向的網址網頁不存在,但是主要是要拿網址上帶的 code 參數,可以拿來下一階段使用。
- 利用
code取得 access token
KKBOX: POST https://account.kkbox.com/oauth2/token
Spotify: POST https://accounts.spotify.com/api/token
POST request 要帶上剛剛取得的 code,並設定一些參數(grant_type、client_id、client_secret 等等),可以從 response 取得 access_token。
access_token可以拿來當成 API 的 Bearer Token
KKBOX: GET https://api.kkbox.com/v1.1/me
Spotify: GET https://api.spotify.com/v1/me
可以成功取得用戶資料
額外觀察
- KKBOX 沒有後台可以讓使用者取消應用程式的授權