【问题标题】:SoundCloud, filtering by query on the tracks of a specific user doesn't workSoundCloud,通过查询对特定用户的曲目进行过滤不起作用
【发布时间】:2023-03-20 01:30:02
【问题描述】:

我正在尝试使用 soundcloud api 来获取与我正在输入的查询匹配的特定用户的曲目

这是一个没有查询的示例,工作正常,获取该用户的所有曲目 http://api.soundcloud.com/users/4493849/tracks.json?client_id=YOUR_CLIENT_ID

工作正常,并为我获取该用户的 5 首曲目

现在我只需要获取名为“Test Audio”的曲目。所以我做如下 http://api.soundcloud.com/users/4493849/tracks.json?client_id=YOUR_CLIENT_ID&q=Test

现在的问题是,当我放 q= 时,它只是为我带来了整个 soundcloud 中与 Test 匹配的所有音轨,即它查询所有 soundcloud 而不是我想要的该用户的 5 个音轨

请帮忙

【问题讨论】:

  • 你说得对,它似乎确实坏了。他们的API docs for /users 确实表明它支持q 过滤器参数,但我可以确认包含它并不像文档中那样工作。
  • 我们现在该怎么办?我们如何向他们报告这个错误?
  • 仍然没有得到任何有用的信息
  • 请问您是从哪里获得 soundcloud api 或 sdk 的?我也想开发一些使用 soundcloud 的东西 :) 谢谢

标签: json soundcloud


【解决方案1】:

SoundCloud 的 API 不适用于用户子资源和搜索查询。

因此,最好的方法是加载所有曲目(使用偏移参数批量加载,如果用户有很多曲目)所有曲目,然后在结果中编码您的搜索。

这也是我在启动应用程序时需要的第一个功能,但仅使用他们的 API 无法做到这一点。

【讨论】:

  • 我认为问题在于their API docs 明确指出q 过滤器参数应该与用户的资源一起使用。在 /users 标题下,您会看到:示例、属性、子资源和 过滤器
  • 啊,他们的API太陈旧了,2年多没更新了。例如,它仍然说集合(播放列表)可以由您自己的曲目创建,但实际上,它也适用于其他曲目。如果您想使用 SoundCloud 资源,请访问 soundcloud.com,打开开发工具并开始跟踪请求。
【解决方案2】:

我在这里用 SC 自己的 SDK 试了一下:

http://jsfiddle.net/iambnz/H7VW8/

SC.initialize({ client_id: "cd3e093bf9688f09e3cdf15565fed8f3" });  

SC.get('/users/4493849', { q: 'test' }, function(tracks) {
  console.log(tracks);
});

结果将只是一个轨道/对象:

Object {id: 4493849, kind: "user", permalink: "the-uprising-developers", username: "The Uprising Developers", uri: "http://api.soundcloud.com/users/4493849"…}

【讨论】:

  • 这不是我想要的。您的请求正在返回用户,无论如何它都会忽略关键字,尝试删除测试关键字查询并查看会发生什么,没有任何改变,因为它仍然为您提供相同的用户。我希望检索曲目而不是用户。你的答案中的结果对象说得很清楚,种类是“用户”,我希望种类是跟踪
  • 哎呀,我明白了。我希望我能回复你,但现在看来,它已经坏了。
  • 好吧,您可以使用用户端点来检索跟踪对象。但是我玩了一下,看起来(如你所说)与 q 参数一起使用的所有内容最终都会得到错误的响应。 jsfiddle.net/iambnz/g93FY(你会得到我所有的曲目 - 如果你添加 q 参数,它会废弃结果)
  • 目前我正在为用户检索所有曲目,然后在客户端应用程序中手动进行查询,但显然如果在云端完成,效率会大大提高跨度>
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 2015-01-05
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 2016-04-13
相关资源
最近更新 更多