首页 > 解决方案 > 如何在 Ruby 中使用 HTTP 请求使用 Spotify

问题描述

首先,我需要在我的 spotify 帐户中创建一个新的播放列表,然后我需要添加一些歌曲,然后更改播放列表中歌曲的顺序。如何使用带有 Watir 或 RestClient 的 ruby​​ 中的 HTTP 请求来执行此操作?

我已经制作了脚本让我登录并使用 RestClient 获取 ACCES TOKEN。

grant = Base64.encode64("#{CLIENT_ID}:#{CLIENT_SECRET}").delete("\n")

respond = RestClient.post('https://accounts.spotify.com/api/token',
                       {'grant_type' => 'client_credentials'},
                       {"Authorization" => "Basic #{grant}"})
token_ext =  respond.split(',')
token_ext2 = token_ext[0].split(':')
only_token = token_ext2[1].delete_prefix('"').delete_suffix('"')
puts 'ACCES TOKEN: %s' % [only_token]

来自 Spotify Docs 的 HTTP 请求示例。 添加新的播放列表

标签: rubyspotifywatirrest-client

解决方案


Watir 通过驱动浏览器创建 HPPT(S) 请求。它通常用于对 Web UI 进行自动化测试。您提供的示例帖子似乎是对带有 JSON 正文的 Web API 的直接调用。所以通常你会使用类似 REST Client 的东西来创建这样的 HTTP 请求。通常,这从一个身份验证请求开始,以获取一个令牌,然后将其合并到后续 API 请求的标头中,例如您链接的那个。我建议从一些使用该 gem 的基本教程开始。

否则,使用 WATIR 执行此操作基本上意味着遵循与手动使用 Web 浏览器相同的步骤,只需使用使用 watir gem 驱动浏览器而不是键盘和鼠标的 ruby​​ 代码。这通常从导航到网站开始,登录,然后操作 UI(填写输入字段、单击按钮等)


推荐阅读