Spotify API 响应禁止我在当前播放曲目请求中的定位

Posted

技术标签:

【中文标题】Spotify API 响应禁止我在当前播放曲目请求中的定位【英文标题】:Spotify API responds with forbidden to my seek to position in currently playing track request 【发布时间】:2020-01-22 18:04:42 【问题描述】:

对于我想到的一个小项目,我想更好地熟悉 Spotify API。一切都很顺利,直到我想尝试只需要 user-modify-playback-state 范围的 seek to position in currently playing track 请求,当我发送请求时服务器以 403 FORBIDDEN强>。

 [WebapiError: Forbidden] name: 'WebapiError', message: 'Forbidden', statusCode: 403 

值得一提的是,我正在使用 spotify-web-api-node 模块与 API 进行通信,但我尝试从 Postman 发送相同的请求并出现相同的问题。

我用这个功能来切换用户:

const switchToUser = (username, callback) => 
  User.findOne( username: username )
    .then(user => 
      if (user !== null) 
        SpotifyApi.setRefreshToken(user.refreshToken);
        SpotifyApi.refreshAccessToken()
          .then(data => 
            SpotifyApi.setAccessToken(data.body["access_token"]);
            callback(); // Callback
          )
          .catch(err => console.log(err));
       else 
        console.log("There's no user with that username in the database.");
      
    )
    .catch(err => console.log(err));
;

我的电话:

switchToUser("stelrin", () => 
  SpotifyApi.seek(1569091982344).then(
    () => console.log("done"),
    err => console.log(err)
  );
);

授权链接:

https://accounts.spotify.com/authorize?client_id=myClientId&response_type=code&redirect_uri=myRedirectUri&scope=user-modify-playback-state%20user-read-playback-state&state=stelrin

搜索功能: Image

我尝试在spotify-web-api-node docs 中查找搜索功能,但没有找到。

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

尝试播放时可能会出现 403,但消息会显示 PREMIUM_REQUIRED,另一种可能是 Seek 的参数不正确,只有 position_msdevice_id 支持,后者是选项,您可以尝试检查发送到 Spotify 的内容以检查对https://api.spotify.com/v1/me/player/seek 的请求是否正确

【讨论】:

以上是关于Spotify API 响应禁止我在当前播放曲目请求中的定位的主要内容,如果未能解决你的问题,请参考以下文章

Spotify Web API 播放端点 - 播放曲目

获取Spotify当前播放的曲目

获取Spotify当前播放的曲目

Spotify - 如何暂停曲目和恢复曲目

Spotify + AppleScript:将当前曲目添加到播放列表

Spotify api 1.0.0 获取给定曲目集的播放列表的图像