当前位置: 首页 > 知识库问答 >
问题:

向Spotify APIendpoint提交请求失败

鲁阳焱
2023-03-14

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

let headers = new HttpHeaders().set('Authorization', 'Bearer ' + this.accessToken);

const endpoint1 = 'https://api.spotify.com/v1/me/player/currently-playing';
this.httpClient.get(endpoint1, { headers: headers }).subscribe((data: Object) => {
  console.log(data);
});

const endpoint2 = 'https://api.spotify.com/v1/me/player/play';
this.httpClient.put(endpoint2, { headers: headers }).subscribe((data: Object) => {
  console.log(data);
});

get请求工作得很好,在请求中设置了Authorization头,它按预期工作。然而,put请求不起作用。在响应中,我收到一条错误消息,上面写着“没有提供令牌”。此外,在Chrome开发工具中,网络选项卡显示带有Authorization头的get请求,但put请求没有Authorication头。

我不确定会导致第二个请求出错的两个请求之间有什么不同,两个终结点都只需要授权标头,并且我已经确保已为访问令牌提供了访问这些终结点所需的正确作用域。

player/play需要“用户修改播放状态”范围,player/currently playing需要“用户读取当前播放”和/或“用户读取播放状态”,我已经包括了这三个。

可以在此处找到两个终结点:

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

https://developer . Spotify . com/documentation/we b-API/reference/player/start-a-users-playback/

为什么put请求会失败,我该如何修复它?

共有1个答案

虞安康
2023-03-14

您需要在标头中传递令牌,如下所示,

this.http.put('https://api.spotify.com/v1/me/player/play',
{
  context_uri: 'spotify:album:' + album.id
},
{
  headers: {
    'Authorization': 'Bearer ' + this.spotifyToken
  }
})
  .subscribe();
 类似资料:
  • 我试图对我写的rest api执行一个put请求,但它总是返回400-bug请求。 java.io.IO异常:服务器返回HTTP响应代码:400为URL:http://localhost:8000/api/v0/contacts/2sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 我可以用firefox rest客户端

  • 当我尝试从NPM安装软件包时,我得到fetch failed错误。我设置了npm的配置:-设置strict-ssl为false-使用https://registry.npmjs.org设置注册表/-设置代理和https-proxy 当我搜索一个软件包时,注册表的get方法运行良好,但是当我尝试安装时,我得到了一个错误 在我用node 8.9.1的最新版本和NPM5.5.1升级我的节点后,我得到了这

  • 当我在symfony4中提交json http post请求时,requesthandling不会提交我的表单。 我尝试将“方法”选项设置为要发布的表单,但似乎没有帮助。我将application/json头用于Content-type和Accept。 表格: 控制器: 还有我的http帖子: 标头:内容类型:应用程序/json接受:应用程序/json 正文:{“用户名”:“dunglas”} 我

  • 在 提交失败,错误0个文件提交,3个文件提交失败:无法创建'C:/xampp/htdocs/project/. git/index.lock':文件存在 另一个git进程似乎正在该存储库中运行,例如,由“git提交”打开的编辑器。请确保所有进程都已终止,然后重试。如果仍然失败,那么git进程可能已经在此存储库中崩溃:手动删除该文件以继续。 我关闭了所有开放的终端,反复尝试,但没有成功。 谢谢你的建

  • 问题内容: 我正在尝试将浏览器定向到其他页面。如果我想要GET请求,我可能会说 但是,除非使用POST请求,否则我尝试访问的资源将无法正确响应。如果不是动态生成的,我可能会使用HTML 然后,我只需从DOM提交表单。 但是我真的很想让我说的JavaScript代码 最好的跨浏览器实现是什么? 编辑 对不起,我不清楚。我需要一个更改浏览器位置的解决方案,就像提交表单一样。如果XMLHttpReque

  • 本文向大家介绍.NET的Ajax请求数据提交实例,包括了.NET的Ajax请求数据提交实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了.NET的Ajax请求数据提交实现方法。分享给大家供大家参考。具体如下: 控制器 希望本文所述对大家的.NET程序设计有所帮助。