Spotify 网络钩子?

Jef*_*rey 5 webhooks spotify

Spotify 平台是否计划为第三方开发人员提供任何 webhook 来监听用户库、播放列表或播放器的变化?

如果 Webhook 不存在,有哪些已知的解决方法?

Rac*_*arp 5

Web API 中没有 webhooks,我认为添加该功能还需要很长时间https://github.com/spotify/web-api/issues/538

Spotify 上的播放列表由snapshot_id. 当您发出 API 请求以获取播放列表时,返回的字段之一是snapshot_id,用于标识播放列表版本。如果您为每个播放列表存储此版本 ID,则可以远程检查自上次检查以来播放列表是否已更改(snapshot_id如果更改,则更改)

请务必记住,您所做的任何更改也会影响snapshot_id. 所以你需要:

  1. 获取播放列表
  2. 您本地保存snapshot_id的播放列表是否与当前保存的不同?
  3. 如果是这样,也许会做一些改变
  4. 进行更改后,再次获取播放列表
  5. snapshot_id进行更改后,从“获取播放列表”中存储

我认为snapshot_id用户的库不支持 - 您可以检查用户库的子集以检测任何添加(例如,如果库中的前 50 首歌曲没有更改,则没有添加新歌曲,并且您只需要发出一个 API 请求而不是无数次),但是如果您只这样做,您将错过从库的其余部分中删除的内容。您还可以检查库中歌曲的数量,这会告诉您何时添加或删除了歌曲,除非它们添加和删除相同数量的歌曲。但这意味着他们添加了一首歌曲,检查库中的前 50 首歌曲会发现这一点。

您可以轮询当前播放和最近播放的歌曲。如果您想跟踪用户收听的每首歌曲,您可以通过至少每 30 * 50 秒(25 分钟)轮询一次最近播放来实现这一点。30 是在 Spotify 将歌曲录制为 Listen 之前听一首歌所需的秒数,50 是它将为您提供的最近播放歌曲的最大数量。