我一直在听音乐。工作、玩游戏、做家务或做其他任何事情时我都会听音乐。
Spotify 非常适合这种情况。它使用起来很简单,而且当我在家里四处走动时,它可以无缝地将音乐从一个设备传输到另一个设备。但是,有时我会感到沮丧,因为我不得不不断切换正在使用的应用程序才能更改歌曲或播放设备。
我意识到我可能并不独特,其他人也可能对此感到厌烦。所以,我决定制作一个可重复使用的 Spotify 模块 Mendix,现在我可以在自己制作的任何应用中包含 Spotify 的基本控制。
为你带来节奏 Mendix Spotify 的应用
当我做了一些研究后,我意识到要实现这个功能需要几个基本步骤:
- 使用 Spotify 注册该应用
- 通过 Spotify 进行身份验证
- 基于客户端的凭证
- 授权码
- 搜索艺术家的曲目和专辑
- 开始播放
- 获取可用设备
- 在设备之间传输播放
在本系列的第一部分中,我将介绍如何使用 Spotify 注册您的应用程序、使用客户端凭据进行身份验证以及如何使用获取的令牌在 Spotify 上搜索曲目、艺术家和专辑。
注册应用程序
去 Spotify 开发者仪表板 并使用您的 Spotify 帐户登录。
点击 建立应用程式 并按要求填写所有详细信息。最重要的是, 设置重定向 URL 您的 Mendix app(支持多个 URL,localhost 也可以)。您可以随时编辑、添加和删除重定向 URL。

在 Spotify 中查看您的应用时,点击右上角的设置以查看应用的客户端 ID 和密钥。请记住确保这些内容的安全,如果您认为您的凭据已被泄露,请刷新您的客户端密钥。

认证
Spotify 使用 OAuth 2.0 作为其 WebAPI,这意味着有四种授权类型可供选择。
这是他们的 完整授权指南 读书。
在我的整合中,我使用了两者 客户凭证 和 授权码 流程。客户端凭证可用于与 Spotify 的许多端点交互,例如搜索艺术家和曲目,但不能用于与用户数据交互。为此,只有用户才能授予对其帐户的访问权限,为此,我使用了授权码流程。
客户凭证
要使用客户端凭证验证您对 Spotify Web API 的请求,只需从 Spotify 门户中的应用设置页面获取您的客户端 ID 和客户端密钥,如上所示。您需要点击 显示客户端机密 查看秘密。
把它们存放在安全的地方,我把它存放为 常量 在我 Mendix 应用
接下来我们需要进行如下 POST REST 调用:
Location :https://accounts.spotify.com/api/token
HTTP Method :POST
HTTP Header : Content-Type 'application/x-www-form-urlencoded'
Body :
grant_type=client_credentials&client_id=XXX_Your_Client)ID_XXX&client_secret=XXX_Your_Client_Secret_XXX
我应用了导入映射,它使用以下 JSON 结构将令牌映射到我的 Mendix 应用程序:
{
"access_token": "XXX_Your_Valid_Token_Response_XXX",
"token_type": "Bearer",
"expires_in": 3600
}
令牌的有效期为3600秒(一小时),时间到后需要刷新。
搜索 Spotify
获取令牌后,使用起来非常简单。要执行搜索,我们需要向 Spotify 的搜索 API 发出请求。查看 完整文档页面 如果您想了解更多内容,请查阅。
我们将使用端点 如文档中所述 使用额外的查询字符串来传递我们的参数:
最终请求如下所示:
Location :https://api.spotify.com/v1/search?q=URL_Encoded_Query_String&type=album,artist,track
HTTP Method :GET
HTTP Header : Authorization 'Bearer '+$SpotifyToken/Access_token
请注意 URL 中“?”表示的查询字符串。只要是 URL 编码的,它可以是任何字符串变量。“type”是要执行的搜索类型,在本例中为专辑、艺术家和曲目。
完整的 JSON 响应很长,因此我不会在这里包含它,但你可以 阅读文档 了解更多信息。
最后,我使用它自己的导入映射和 JSON 结构(选择“自动映射”)映射了这个响应,并构建了一个简单的 UI 来显示数据:

专家提示 – 您可以使用 图像小工具 显示来自 URL 的图像。搜索响应包含曲目、艺术家和专辑的 URL 上托管的图像。
本系列的下一篇……
暂时就这样了。 在第二部分我介绍了如何使用授权码流程进行身份验证,以及如何使用收到的个人访问令牌在连接到 Spotify 的任何设备上启动和停止歌曲的播放。