Spotify 自动播放列表管理与 PHP 后端和速率限制

2024-01-04

两个问题:

问题1.

我们需要从我们的后端 (PHP) 管理 Spotify 用户的 4 个播放列表(无需用户登录)。 我们网站的访问者可以向我们的网站提交多首他们喜欢的歌曲。在此基础上,我们创建并管理 4 个播放列表,其中包含“提交最多的歌曲”。我们希望从 PHP 后端自动执行此过程,而无需在几个月内每天手动管理播放列表。 我们希望为此使用 Spotify API,但需要用户访问令牌来访问和管理用户播放列表。我们创建了一个概念验证,“用 PHP 模拟浏览器”。我们登录、检索身份验证令牌、使用身份验证令牌请求访问令牌,然后执行必要的 API 调用 - 所有这些都无需用户干预。 这种方法有效,但我们怀疑并知道这并不是 100% 可行的方法:)。我们并不是在滥用 API 或其他任何行为,但如果这不是正确的方法,我们如何定期自动管理这 4 个用户播放列表呢? 请注意,我们的后端是基于 Apache – PHP 的。我们也可以使用 NodeJS,但话又说回来,这也不是正确的选择。

问题2。

用户向我们的网站提交歌曲。当用户在搜索字段中输入(歌曲标题/艺术家姓名)时,一秒钟后我们会对 Spotify API 执行 ajax 调用,并根据输入显示搜索结果。考虑到网站上预期的访问者数量,这可能会给 API 带来大量流量。 文档(https://developer.spotify.com/web-api/user-guide/#rate-limiting https://developer.spotify.com/web-api/user-guide/#rate-limiting)对于所应用的速率限制不是很清楚。是否可以给我们更好的指示这些速率限制,因为我们希望防止这种情况破坏我们的网站?

提前致谢。


问题1

如果您想在某个用户的库中创建播放列表,您需要该用户向您的应用程序授予这些权限。

就您而言,您将实施授权码流程 https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow获取刷新令牌和访问令牌。

存储获取的访问令牌和刷新令牌,使用访问令牌执行请求,并在访问令牌过期时使用刷新令牌更新访问令牌。

如果您要在您拥有的用户中管理这些播放列表,则无需向用户显示任何登录表单。登录一次,然后在脚本中使用获取的令牌,该脚本将定期更改用户的播放列表。

问题2

目前 Spotify 开发者网站上尚未指定限制,但他们的 API 应该能够处理您的搜索请求。如果您想更加安全,请对您的请求进行身份验证,以便它们受到 client_id 的限制。要获取像这样的不包含任何用户信息的令牌,您可以使用客户凭证流程 https://developer.spotify.com/web-api/authorization-guide/#client_credentials_flow.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spotify 自动播放列表管理与 PHP 后端和速率限制 的相关文章

  • PHP:检测USB设备

    我正在尝试使用 PHP 将用户名和密码存储到 USB 拇指驱动器上的文本文件中 因此 当用户返回使用 USB 密钥登录时 应该会打开一个弹出窗口 并提示输入用户名和密码 所以我的问题是如何使用 PHP 检测 USB 拇指驱动器 所以客户端或
  • 如何使用php api检查电子邮件或手机paypal帐户状态?

    如何使用 php api 检查电子邮件或手机 Paypal 帐户状态 好的 如果我想汇款到此电子邮件贝宝 email protected cdn cgi l email protection 或手机 1234567890 汇款前 我可以检查
  • 在仅包含键的字符串的嵌套数组中查找值

    我有一个数组 其中包含一些设置 基本上如下所示 defaults array variable gt value thearray gt array foo gt bar myvar gt array morevars gt moreval
  • PHPExcel输出乱码

    我正在尝试 PHPExcel 附带的简单示例 01simple xls 我得到乱码输出 它 LibreOffice 想要导入文件 它认为字符集是西欧 DOS OS2 861 icelandic 输出是这样的
  • 是否需要使用fetch_object或fetch_array?

    我最近发现我可以打印数据库中的结果而不使用mysqli fetch object功能 例如 假设我们有一个简单的 sql select 语句 可以使用如下所示的语句来执行 conn mysqli connect localhost root
  • 使用 PHP 将表单数据发送/发布到 URL [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个通过 POST 提交的表单 提交表单后我捕获变量 如何连接表单数据 然后将其 POST 到 url 然后重新定向到感谢页面 这不是确
  • 将多个平台部署到 Elastic Beanstalk (PHP/Python)

    是否可以将多个平台部署到AWS 我有一个 PHP 应用程序 我还想运行一个小的 python 脚本 我看到 PHP 平台默认安装 Python 但是使用eb deployAWS 没有接听requirements txt并安装依赖项 我已经尝
  • 在另一列中查找重复值时,如何将列数据存储为逗号分隔值? [复制]

    这个问题在这里已经有答案了 如果任何公司的产品都相同 我必须组合或内爆子数组值 预期输出应该类似于 0 gt array company gt 1 6 product gt 5 我的数组是 array 0 gt array company
  • 无循环按键对多维数组求和

    我有这个 Array 0 gt Array f count gt 1 uid gt 105 1 gt Array f count gt 0 uid gt 106 2 gt Array f count gt 2 uid gt 107 3 gt
  • 禁用选择标签内的一个选项值在 IE6Ha 中不起作用[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个包含 4 个值 a b c d 的选择框 我只想禁用下拉列表中的 c 我使用了禁用属性 它在所有浏览器中都有效 但在 IE6
  • 选择早于的时间戳

    我如何从数据库中选择超过 12 小时的项目 我使用时间戳列来存储时间 但我认为我不需要年 月 日 只需要小时 我有类似的东西 但它不起作用 没有错误 只是从表中返回所有数据 sql SELECT FROM Y WHERE X and tim
  • Mailgun 内联图像,它是如何工作的?

    我正在使用 mailgun 并希望将图像添加到我的时事通讯中 现在我这样做了 mg gt sendMessage domain array from gt email protected cdn cgi l email protection
  • 为什么 opcache 没有刷新?

    我用guzzlehttp guzzle封装在拉拉维尔 8 升级到后PHP 8 I get Symfony Component ErrorHandler Error FatalError Invalid opcode 117 2 0 in f
  • 如何向 opencart 管理添加新模块?

    我想在 opencart 管理中将子菜单项 位置 添加到 目录 菜单项 在选择位置时 我想看到我自己的位置管理视图页面 该页面与 opencart 数据库中我自己的位置表相互关联 请让我知道在哪里以及创建什么 mvc 才能在开放购物车中实现
  • PHP:检查任何基于拉丁语的语言中的字母字符?

    使用 PHP 我想检查一个字符串仅包含字母字符 我不想允许任何数字或特殊字符 例如 ctype alpha 对于这个目的来说似乎很棒 问题是我想允许重音字母 例如法语等 例如 我想允许 L rien 我知道ctype alpha 可以与se
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

    我已经阅读 Stack Overflow 问题大约 15 分钟了 每一个问题似乎都与我之前读到的问题相矛盾 Bcrypt SHA1 MD5 等 我目前对我的密码进行 MD5 但我想让我的数据库在发生泄露时更加安全 我知道这个问题已经被问了一
  • PHP 中可以动态添加数据成员吗?

    我想知道是否可以在 PHP 运行时添加新的类数据成员 Yes prop newname obj gt prop 42 会做同样的事情 obj gt newname 42 如果 obj 尚不存在 则任一者都会将 newname 添加为属性
  • 如何捕获生成器抛出的异常并恢复迭代?

    我有一个生成器 它将值的集合传递给方法并生成结果 调用的方法可能会返回异常 发生这种情况时 我希望异常转到调用生成器来处理异常的代码 然后继续循环生成器 为了说明这一点 下面是一个生成器的示例 它将产生1 抛出一个 Exception 然后
  • 精简 PHP 和 GET 参数

    我使用 Slim PHP 作为 RESTful API 的框架 如何在 Slim PHP 中从 URL 获取 GET 参数 例如 如果我想使用以下内容 http api example com dataset schools zip 999

随机推荐