๐คSpotify ์๋ก ๊ณ ์นจ ํ ํฐ์ ์ป๋ ๋ฐฉ๋ฒ๐๐
5518 ๋จ์ด hacksspotifywebdevjavascript
์ด ๋ธ๋ก๊ทธ์์๋ Spotify Refresh Token์ ์์ฑํ ๋ค์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๋ 2๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ด my blog site์ ํ์ํ๊ณ ํ์ฌ ์ฌ์ ์ค์ธ ํธ๋์ ๋ฐ๋ฅ๊ธ ์น์ ์ ํ์ํ ์ ์๋ Top 10 Tracks์ฉ Spotify ์๋ก ๊ณ ์นจ ํ ํฐ์ด ํ์ํ์ต๋๋ค.
์ฒซ ์ ๊ทผ
1๋จ๊ณ: Spotify client_id ๋ฐ client_secret ์์ฑ
2๋จ๊ณ: Spotify ์ฑ์ ๋ฆฌ๋๋ ์ URI ์ถ๊ฐ
https://getyourspotifyrefreshtoken.herokuapp.com/callback
์ Redirect URIs
๋ฅผ ์ถ๊ฐํฉ๋๋ค.์ด๋ฏธ์ง์ ํ์๋ฉ๋๋ค.
3๋จ๊ณ: Spotify ์๋ก๊ณ ์นจ ํ ํฐ ๋ฐ๊ธฐ
Client ID
๋ฐ Client Secret
๋ฅผ ์ถ๊ฐํ๊ณ ํ๋ก์ ํธ์ ๋ํด scope
๋ฅผ ์ ํํฉ๋๋ค. ๋ฒ์์ ๋ํ ์์ธํ ๋ด์ฉ์ documentation๋ ๋ฒ์งธ ์ ๊ทผ๋ฒ(๋ ๊ธด)
1๋จ๊ณ: Spotify client_id ๋ฐ client_secret ์์ฑ
<website>/callback
๋ฅผ Redirect URIs
์ ์ถ๊ฐํฉ๋๋ค. ์. http://musing.vercel.app/callback
2๋จ๊ณ: ์ก์ธ์ค ์ฝ๋์ฉ URI ์์ฑ
$CLIENT_ID
, $SCOPE
๋ฐ $REDIRECT_URI
๋ฅผ 1๋จ๊ณ์์ ๊ธฐ๋กํ ์ ๋ณด๋ก ๋ฐ๊ฟ๋๋ค. $REDIRECT_URI
๊ฐ URL encoded์ธ์ง ํ์ธํฉ๋๋ค. https://accounts.spotify.com/authorize?response_type=code&client_id=$CLIENT_ID&scope=$SCOPE&redirect_uri=$REDIRECT_URI
https://accounts.spotify.com/authorize?response_type=code&client_id=CLIENT_ID&scope=SCOPE&redirect_uri=https%3A%2F%2Fmusing.vercel.app%2Fcallback
3๋จ๊ณ: ๋ฆฌ๋๋ ์ URI์์ ์ก์ธ์ค ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
$ACCESSCODE
์๋ฆฌ์ ๊ธด ๋ฌธ์์ด์ด ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ฅผ ์ํด ํด๋น ๋ฌธ์์ด์ ๊ธฐ๋กํด ๋ก๋๋ค. https://sabare.me/callback?code=$ACCESSCODE
4๋จ๊ณ: ๊ฐฑ์ ํ ํฐ ๋ฐ๊ธฐ
curl -d client_id=$CLIENT_ID -d client_secret=$CLIENT_SECRET -d grant_type=authorization_code -d code=$CODE -d redirect_uri=$REDIRECT_URI https://accounts.spotify.com/api/token
$CILENT_ID
๋ฅผ ๊ธฐ๋กํด ๋ก๋๋ค. ์ด ํ ํฐ์ ๋งค์ฐ ์ค๋ซ๋์ ์ง์๋๋ฉฐ ํ์ํ ๋๋ง๋ค ์๋ก์ด ํ ํฐ$CLIENT_SECRET
์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. {
"access_token": "ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "REFRESH_TOKEN",
"scope": "playlist-modify-private"
}
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐คSpotify ์๋ก ๊ณ ์นจ ํ ํฐ์ ์ป๋ ๋ฐฉ๋ฒ๐๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/sabareh/how-to-get-the-spotify-refresh-token-176ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค