Spotify Web API入门指南

在这个夏天的开始,我终于离开了下载音乐的原始时代,进入了音乐流媒体的未来。 我像世界上大多数国家一样陷入困境并获得了Spotify订阅,此后再也没有回头。 当我开始探索该应用程序时,我发现它不仅具有聆听您喜欢的音乐的便捷方式,还具有更多的功能。 它使听音乐变成一种社交探索,使您能够查看朋友听的内容或跳入其众多精选播放列表之一。 尽管即使对于最狂热的发烧友来说,它的功能也绰绰有余,但我内部的软件工程师还是想做更多。

我开始使用Spotify Web API来创建一个扩展了Spotify社交功能的应用程序。 我着手制作一个基本的群组聊天应用程序,该应用程序允许用户互相发送在Spotify上找到的歌曲,然后对这些曲目进行投票。 当歌曲获得足够的票数时,它会立即添加到Spotify播放列表中,以便该组在Spotify应用中收听。

虽然Spotify Web API文档内容广泛,涵盖了几乎所有您想使用Spotify进行的制作,但我发现对于那些只想开始使用基础知识的人来说,它有点太广泛了。 此外,我发现了一些第三方资源,这些资源使使用Spotify变得更加容易。 本文将概述我使用的一些技术和技巧,并提供一些代码段以帮助您入门。 此外,如果您需要其他资源,则在底部提供指向我所有代码的链接。

认证方式

Spotify文档提供了用于使用户登录并获取其信息的示例代码。 但是,我发现使用Passport.js(一种用于用户身份验证的node.js中间件)要容易得多。 我将其与Passport-Spotify(https://github.com/JMPerez/passport-spotify)配对,这是一种使用Spotify帐户验证用户身份的策略。

在https://developer.spotify.com上注册应用程序后,将为您提供应用程序密钥和应用程序密钥。 可以将它们插入Passport-Spotify提供的代码框架中,以允许用户使用其Spotify帐户登录。 您还需要在Spotify开发人员网站上注册回调URL。 出于开发目的,您可能会使用类似于http:// localhost:8888 / callback的内容。 将信息插入框架后,用户将能够通过其Spotify帐户登录并注册。 Passport-Spotify实例还使用函数作为参数。

该函数将被传递一个accessToken,refreshToken,用户配置文件和done函数。 accessToken对用户而言是唯一的,并且该用户向Spotify发出请求将需要它,因此请确保将其保存在某个地方! refreshToken可用于获取新的accessToken,因为它们会在很短的时间内失效。 该配置文件将包含从用户那里获得的信息。 用户登录后,完成功能用于序列化用户。 下面的代码是用户登录后可能想要执行的操作的示例。

提出Spotify请求

登录用户并为其获取访问令牌后,您可以开始向Spotify发出请求,以从Spotify获取内容或对属于该用户的内容进行更改。 我使用的3个主要请求是制作播放列表,搜索曲目并将曲目添加到播放列表。 可以使用Ajax请求来完成对Spotify的请求。 在我的示例中,我将使用axios,它允许您向Spotify发出HTTP请求。

以下代码显示了我如何请求为用户创建播放列表:

“ jsonData”是我将发送给Spotify的信息,在这种情况下,它是播放列表的名称,对应于播放列表是否应该公开的布尔值以及播放列表说明。 有了这些数据,我可以使用上述URL向Spotify发出POST请求。 “ this.state.userReducer.SpotifyId”是指当前用户的Spotify ID,它将使Spotify知道要为其创建播放列表的用户。 “ this.state.userReducer.accessToken”是指该用户的访问令牌。 这对于该特定用户来说是必要的,因为它使Spotify知道该用户已授予我权限代表他们发帖。 制作播放列表后,将返回有关播放列表的信息(存储在“ res.data”中),我用来跟踪数据库中所有已创建的播放列表。

类似的请求可以用于基于用户的输入来获取歌曲。 所有需要做的就是将URL更改为上面的URL,并在歌曲名称和歌手姓名之间填充位置。 如您所见,要获取曲目详细信息,我需要访问“ res.data.tracks.items [0]”。 从请求返回的跟踪对象非常复杂,因此,我绝对建议通过控制台对其进行注销以了解其中的内容。 获得歌曲之后,我使用网络音频允许用户播放曲目的30秒预览,以便他们可以决定是否要将其添加到播放列表中。 然后,可以通过简单的POST请求将歌曲添加到播放列表中。

这是足够的信息,可以帮助您开始使用Spotify。 您可以做更多的事情,我鼓励您探索Spotify开发人员文档,以及一些其他可以在互联网上找到的示例程序。 如果您需要其他简单的参考,可以在这里参考我为Spot-Me编写的代码:https://github.com/Alex-Ginsberg/Spot-Me