Spotify API 错误。 401 缺少权限。尝试播放曲目时
Spotify API Error. 401 Permissions missing. When Attempting to Play Track
我正在尝试使用 spotify-web-api-node
在我的应用程序上播放曲目
const playSong = async () => {
// Verify access token with
console.log(spotifyApi.getAccessToken())
setCurrentTrackId(track.track.id);
setIsPlaying(true);
spotifyApi
.play({
uris: [track.track.uri],
})
.then((d) => console.log("hi", d))
.catch((e) => console.log("err", e));
};
https://github.com/caseysiebel/spotify-clone/blob/main/components/Song.tsx#L19
当我启动对 spotifyApi.play()
的调用时,我收到此错误 WebapiRegularError: An error occurred while communicating with Spotify's Web API. Details: Permissions missing.
,错误代码为 401。
我在我的应用程序中设置了 accessToken 和 refreshToken。我能够登录并从 API 获取数据,例如用户、播放列表和曲目数据。但是当我尝试播放曲目时,它说我没有权限。
我认为这可能与我在 Spotify API 中设置 scopes
的方式有关,但它们对我来说是正确的。
const scopes = [
"user-read-email",
"playlist-read-private",
"playlist-read-collaborative",
"user-read-email",
"streaming",
"user-read-private",
"user-library-read",
"user-top-read",
// "user-library-modify"
"user-read-playback-state",
"user-modify-playback-state",
"user-read-currently-playing",
"user-read-recently-played",
"user-read-playback-state",
"user-follow-read",
].join(",");
https://github.com/caseysiebel/spotify-clone/blob/main/lib/spotify.ts#L5
这似乎与传递给授权 LOGIN_URL
的 scopes
有关,但 streaming
范围肯定存在,我看不出问题所在。看起来是这样,因为某些 API 请求工作,而其他人则说他们没有权限。
有没有人知道是什么导致了缺少权限问题和 Spotify API?
在 lib/spotify.ts
中,第 23 行需要 scope: scopes,
而不是 scopes: scopes,
。
实际使用类型检查可能会有所帮助。
我认为问题出在您的 spotify.js 文件上。
在 clientId 中,您确定名称 NEXT_PUBLICCLIENT_ID 是正确的吗?
不应该是NEXT_PUBLIC_CLIENT_ID.
const spotifyApi = new SpotifyWebApi({
clientId: process.env.NEXT_PUBLICCLIENT_ID,
clientSecret: process.env.NEXT_PUBLIC_CLIENT_SECERT,
});
尝试告诉我这是否有效?
我正在尝试使用 spotify-web-api-node
const playSong = async () => {
// Verify access token with
console.log(spotifyApi.getAccessToken())
setCurrentTrackId(track.track.id);
setIsPlaying(true);
spotifyApi
.play({
uris: [track.track.uri],
})
.then((d) => console.log("hi", d))
.catch((e) => console.log("err", e));
};
https://github.com/caseysiebel/spotify-clone/blob/main/components/Song.tsx#L19
当我启动对 spotifyApi.play()
的调用时,我收到此错误 WebapiRegularError: An error occurred while communicating with Spotify's Web API. Details: Permissions missing.
,错误代码为 401。
我在我的应用程序中设置了 accessToken 和 refreshToken。我能够登录并从 API 获取数据,例如用户、播放列表和曲目数据。但是当我尝试播放曲目时,它说我没有权限。
我认为这可能与我在 Spotify API 中设置 scopes
的方式有关,但它们对我来说是正确的。
const scopes = [
"user-read-email",
"playlist-read-private",
"playlist-read-collaborative",
"user-read-email",
"streaming",
"user-read-private",
"user-library-read",
"user-top-read",
// "user-library-modify"
"user-read-playback-state",
"user-modify-playback-state",
"user-read-currently-playing",
"user-read-recently-played",
"user-read-playback-state",
"user-follow-read",
].join(",");
https://github.com/caseysiebel/spotify-clone/blob/main/lib/spotify.ts#L5
这似乎与传递给授权 LOGIN_URL
的 scopes
有关,但 streaming
范围肯定存在,我看不出问题所在。看起来是这样,因为某些 API 请求工作,而其他人则说他们没有权限。
有没有人知道是什么导致了缺少权限问题和 Spotify API?
在 lib/spotify.ts
中,第 23 行需要 scope: scopes,
而不是 scopes: scopes,
。
实际使用类型检查可能会有所帮助。
我认为问题出在您的 spotify.js 文件上。 在 clientId 中,您确定名称 NEXT_PUBLICCLIENT_ID 是正确的吗? 不应该是NEXT_PUBLIC_CLIENT_ID.
const spotifyApi = new SpotifyWebApi({
clientId: process.env.NEXT_PUBLICCLIENT_ID,
clientSecret: process.env.NEXT_PUBLIC_CLIENT_SECERT,
});
尝试告诉我这是否有效?