【问题标题】:spotify-web-api-node - WebapiError: Unauthorizedspotify-web-api-node - WebapiError:未经授权
【发布时间】:2017-11-09 04:36:56
【问题描述】:
var SpotifyWebApi = require('spotify-web-api-node');
var spotifyApi = new SpotifyWebApi({
clientId : 'xxx',
clientSecret : 'xxx',
redirectUri : 'https://example.com/callback'
});
spotifyApi.getTrack('2q8eudK0r9ImgCB1XhFfxG').then(function(data) {
console.log(data);
});
我的代码有效,但 1 个月后出现此错误。
(node:12824) UnhandledPromiseRejectionWarning: 未处理的承诺
拒绝(拒绝ID:1):WebapiError:未经授权
(节点:12824)
DeprecationWarning:不推荐使用未处理的承诺拒绝。在
未来,未处理的承诺拒绝将终止
具有非零退出代码的 Node.js 进程。
【问题讨论】:
标签:
javascript
node.js
spotify
【解决方案1】:
根据this issue需要设置访问令牌。
spotifyApi.setAccessToken('myAccessToken');
另外,请看这里:https://github.com/thelinmichael/spotify-web-api-node#setting-credentials
// Set necessary parts of the credentials on the constructor
var spotifyApi = new SpotifyWebApi({
clientId : 'myClientId',
clientSecret : 'myClientSecret'
});
// Get an access token and 'save' it using a setter
spotifyApi.clientCredentialsGrant()
.then(function(data) {
console.log('The access token is ' + data.body['access_token']);
spotifyApi.setAccessToken(data.body['access_token']);
}, function(err) {
console.log('Something went wrong!', err);
});
// Get tracks in a playlist
spotifyApi.getPlaylistTracks('thelinmichael', '3ktAYNcRHpazJ9qecm3ptn', { 'offset' : 1, 'limit' : 5, 'fields' : 'items' })
.then(function(data) {
console.log('The playlist contains these tracks', data.body);
}, function(err) {
console.log('Something went wrong!', err);
});