将请求放置到Spotify API端点失败

时间:2018-07-02 16:15:37

标签: angular spotify angular-httpclient

我正在尝试使用Angular的HttpClient向Spotify Web API端点发出放置请求,但请求失败,我不确定为什么。看下面的代码:

// If this line appears in Groovy code, it calls the Closure overload.
// If it's in Kotlin, it calls the KotlinReceiver.() -> Unit overload.
foo.withReceiver { hello() }

get请求工作正常,在请求中设置了Authorization标头,并且按预期方式工作。但是,放置请求不起作用。在响应中,我收到一条错误消息,提示“未提供令牌”。此外,在Chrome开发人员工具中,网络标签会显示带有授权标头的获取请求,但放置请求中没有授权标头。

我不确定两个请求之间的区别是什么,这将导致第二个错误,两个端点都只需要Authorization标头,并且我已确保已为访问令牌提供了访问这些令牌所需的适当范围端点。

播放器/播放需要“ user-modify-playback-state”范围,而播放器/当前播放需要“ user-read-current-playing”和/或“ user-read-playback-state”,包括了这三个。

可以在这里找到两个端点:

https://developer.spotify.com/documentation/web-api/reference/player/get-the-users-currently-playing-track/

https://developer.spotify.com/documentation/web-api/reference/player/start-a-users-playback/

投放请求为何失败,该如何解决?

1 个答案:

答案 0 :(得分:0)

您需要按以下方式在标头中传递令牌,

this.http.put('https://api.spotify.com/v1/me/player/play',
{
  context_uri: 'spotify:album:' + album.id
},
{
  headers: {
    'Authorization': 'Bearer ' + this.spotifyToken
  }
})
  .subscribe();