使用PHP后端和速率限制的Spotify自动播放列表管理
两个问题:
问题1。
我们需要从后端(PHP)管理Spotify用户的4个播放列表(无需用户登录)。 我们网站的访问者可以向我们的网站提交多首他们最喜欢的歌曲。在此基础上,我们创建并管理了4个播放列表,其中包含"提交次数最多的歌曲"。我们希望从我们的PHP后端自动化这个过程,而不需要在几个月的时间里每天手动管理播放列表。 我们希望使用Spotify API来实现这一点,但是需要一个用户访问令牌来访问和管理用户播放列表。我们创建了一个概念验证,它"用PHP模拟浏览器"。我们登录、检索身份验证令牌、请求具有身份验证令牌的访问令牌,然后执行必要的API调用--所有这些都无需用户干预。 此方法有效,但我们怀疑并知道这不是100%可行的方法:)。我们不是在滥用API或任何东西,但如果这不是正确的方式,我们如何定期自动管理这4个用户播放列表? 请注意,我们的后端是基于ApachePHP的。我们也可以使用NodeJS,但话又说回来,这也不是一个好办法。
问题2。
用户向我们的网站提交歌曲。当用户在搜索字段(歌曲名称/艺人姓名)中输入内容时,一秒钟后,我们将执行对Spotify API的AJAX调用,并根据输入显示搜索结果。考虑到网站预计的访问量,这可能会导致API的流量很大。 文件(https://developer.spotify.com/web-api/user-guide/#rate-limiting)对适用的费率限制不是很清楚。是否可以更好地说明这些费率限制,因为我们希望防止这影响我们的网站?
提前谢谢。
解决方案
问题1
如果您要在某个用户的媒体库中创建播放列表,则需要向该用户授予对您的应用程序的这些权限。
在您的情况下,您将实现Authorization Code flow以同时获取刷新令牌和访问令牌。
存储获取的访问令牌和刷新令牌,使用访问令牌执行请求,并在访问令牌过期时使用刷新令牌续订访问令牌。
如果您要在您拥有的用户中管理这些播放列表,则不需要向用户显示任何登录表单。登录一次,然后在脚本中使用获取的令牌,该脚本将定期更改用户的播放列表。问题2
目前Spotify开发者站点上没有指定这些限制,但它们的API应该能够处理您的搜索请求。如果您想要特别安全,请对您的请求进行身份验证,以使它们受到客户端ID基础的限制。要获得这样一个不包含任何用户信息的令牌,您可以使用Client Credentials flow。
相关文章