【问题标题】:Creating a Set With Soundcloud's API使用 Soundcloud 的 API 创建 Set
【发布时间】:2015-10-01 02:17:57
【问题描述】:

我正在使用 Javascript 为我的作品集创建一个带有 Soundcloud API 的 Web 应用程序。在我目前的阶段,我需要能够创建一个新集(又名播放列表)。我使用的是 Soundcloud 文档中的示例代码:

SC.connect(function() {
  var tracks = [22448500, 21928809].map(function(id) { return { id: id } });
  SC.post('/playlists', {
    playlist: { title: 'My Playlist', tracks: tracks }
  });
}); 

但我收到 422 错误:

无法处理的实体 - 请求看起来不错,但有一个或多个 参数看起来有点古怪。您可能发送了数据 格式错误(例如,我们需要一个字符串的数组)。

但它看起来并没有丢失任何东西。

【问题讨论】:

  • 可能是因为 21928809 不是有效/公共轨道,而 22448500 是可以的?
  • 你已经提前认证了用户? afaik 您需要根据文档使用 PUT 而不是 POST 。你可能想看看那个答案,即使它的 php:stackoverflow.com/questions/29156861/…
  • 我确实授权用户作为我初始化后的第一步。我的代码的其他部分工作,但目前停留在这一点上。将继续挖掘。

标签: javascript soundcloud


【解决方案1】:

除了播放列表标题和曲目之外,对 SoundCloud API 的调用还需要一个回调函数。您的代码应如下所示:

SC.connect(function() {
  var tracks = [22448500, 21928809].map(function(id) { return { id: id } });
  SC.post('/playlists', {
    playlist: { title: 'My Playlist', tracks: tracks }, function(response){
      console.log(response)
    }
  });
});

不幸的是,他们的例子是错误的。

【讨论】:

  • 感谢科里成功了;我知道他们的文档中有问题。我还弄清楚了我得到的 422 的来源:我有一个错字并从端点路径“播放列表”中遗漏了“/”,因此它会解析为“api.soundcloud.comme ..”或“api. soundcloud.complay...” 一口气杀死了两个虫子,太棒了。
猜你喜欢
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 2016-09-04
相关资源
最近更新 更多