Nodejs - Spotify API Refresh Token
First off. I have not worked with APIs before.
The problem I have is to refresh the token. The code that's returned as a query parameter to the redirect URI seems to be needed to be put in manually each time. When I get that authentication code, the code below gets me the new access token, as well as the refresh token.
The package I use is spotify-web-api-node and the code below is a result of following their readme. I have also tried spotify-oauth-refresher but I'm too new to coding to figure it out how to use it.
I've tried following the guide on Spotify's own website as well. But I don't seem to be able to get this right by myself.
Would love some guidance. Thanks. Hope things are clear.
var scopes = ['user-read-private', 'user-read-email', 'playlist-read-private', 'playlist-modify-private'],
redirectUri = '<redirect uri>',
clientId = '<client id>',
clientSecret = '<client secret>',
state = '<random string>';
var spotifyApi = new SpotifyWebApi({
redirectUri: redirectUri,
clientId: clientId,
clientSecret: clientSecret
});
// Create the authorization URL
var authorizeURL = spotifyApi.createAuthorizeURL(scopes, state);
console.log(authorizeURL);
var credentials = {
clientId: '<client id>',
clientSecret: '<client secret>',
redirectUri: '<redirect uri>'
};
var spotifyApi = new SpotifyWebApi(credentials);
// The code that's returned as a query parameter to the redirect URI
var code = 'I HAVE TO MANUALLY PUT THIS IN WHEN THE DURATION RUNS OUT';
// Retrieve an access token and a refresh token
spotifyApi.authorizationCodeGrant(code).then(
function(data) {
console.log('The token expires in ' + data.body['expires_in']);
console.log('The access token is ' + data.body['access_token']);
console.log('The refresh token is ' + data.body['refresh_token']);
// Set the access token on the API object to use it in later calls
spotifyApi.setAccessToken(data.body['access_token']);
spotifyApi.setRefreshToken(data.body['refresh_token']);
},
function(err) {
console.log('Something went wrong!', err);
}
);
// clientId, clientSecret and refreshToken has been set on the api object previous to this call.
spotifyApi.refreshAccessToken().then(
function(data) {
console.log('The access token has been refreshed!');
// Save the access token so that it's used in future calls
spotifyApi.setAccessToken(data.body['access_token']);
},
function(err) {
console.log('Could not refresh access token', err);
}
);
Comments
Post a Comment