如何使用 Spotify Web API 获取当前播放/最近播放的歌曲

Posted

技术标签:

【中文标题】如何使用 Spotify Web API 获取当前播放/最近播放的歌曲【英文标题】:How to get currently playing/recently played songs using Spotify web API 【发布时间】:2017-11-21 16:31:31 【问题描述】:

我正在尝试集成 Web API 以获取当前播放/最近播放的歌曲。但是,我无法生成具有范围(用户读取当前播放、用户读取播放状态)的令牌。

我按照这个链接作为 Spotify 的参考。 https://developer.spotify.com/web-api/authorization-guide/

1 https://accounts.spotify.com/authorize/?client_id=[CLIENT_ID]&response_type=code&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback&scope=user-read-currently-playing%20user-read-playback-state&state=34fFs29kd09

我收到以下 html 响应。

<html ng-app="accounts" ng-csp="">
<head>
<meta charset="utf-8">
<title ng-bind="(title &amp;&amp; (title | localize) + ' - ') + 'Spotify'">Spotify</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<base href="/">
<link href="https://d2d1dxiu3v1f2i.clou..." media="screen" rel="stylesheet">
<script async="" defer="" src="https://d2d1dxiu3v1f2i.clou..." sp-bootstrap=""></script>
<meta ng-non-bindable="" sp-bootstrap-data="">
</head>
<body ng-view=""></body>
</html>

请帮忙。 谢谢

【问题讨论】:

它是否返回 HTTP 状态码? 【参考方案1】:

您似乎对身份验证过程略有误解 - 在授权代码流程中,第一步是将该页面呈现给您的用户。您可以在原始窗口中的 iframe、弹出窗口中执行此操作 - 无论您喜欢什么。用户授予或拒绝该页面的权限后,他们将使用重定向 URI 重定向回您的应用。

要完成授权代码流程,您必须将在重定向中获得的代码交换为访问令牌和刷新令牌。要执行此交换,您需要客户端服务器 - 不得将其存储在您的 Web 前端。您需要一个后端来进行交换并使用访问令牌将用户转发到您的前端。如果您没有后端,则可以使用隐式授权流程。

希望有帮助!

【讨论】:

以上是关于如何使用 Spotify Web API 获取当前播放/最近播放的歌曲的主要内容,如果未能解决你的问题,请参考以下文章

Spotify Web API 授权错误

如何使用 spotify web api 获取用户的播放列表列表?

如何通过 spotify api 获取用户跟踪信息

Spotify node web api - 多个用户的麻烦

如何使用 Spotify Web API 的 PUT 命令通过 Android 应用程序暂停我的 Spotify

如何从 Spotify Web API 获取播放列表的特定快照?