ruby - 如何在 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 请求示例。 添加新的播放列表
解决方案
Watir 通过驱动浏览器创建 HPPT(S) 请求。它通常用于对 Web UI 进行自动化测试。您提供的示例帖子似乎是对带有 JSON 正文的 Web API 的直接调用。所以通常你会使用类似 REST Client 的东西来创建这样的 HTTP 请求。通常,这从一个身份验证请求开始,以获取一个令牌,然后将其合并到后续 API 请求的标头中,例如您链接的那个。我建议从一些使用该 gem 的基本教程开始。
否则,使用 WATIR 执行此操作基本上意味着遵循与手动使用 Web 浏览器相同的步骤,只需使用使用 watir gem 驱动浏览器而不是键盘和鼠标的 ruby 代码。这通常从导航到网站开始,登录,然后操作 UI(填写输入字段、单击按钮等)
推荐阅读
- javascript - 如何使用 SOAP 响应绑定 HTML 表
- sql - SQL - 从一列中选择不同的 (4) 值并显示为四个单独的列
- sql - 试图在给定的一天从客户那里获得最大的价值
- reactjs - 带有 React.createContext 的 Typescript HOC
- java - RecyclerView:我应该把这个方法放在哪里?
- php - 如何查找电子邮件 ID 是否已在 db 中注册或未在 php 中注册?
- node.js - 试图将 newWeather 对象保存到 MongoDb,但没有成功。ReferenceError:未定义位置
- c# - 如何从 SEO 友好的 URL 中隐藏 ID
- javascript - 在 RXJS 中创建自定义 pipable 运算符
- python - TensorFlow 内存堆栈管理