Soundcloud API - 从组中添加/删除歌曲 - 404错误

时间:2012-07-29 21:17:06

标签: soundcloud

我一直在尝试使用Soundcloud API添加和删除群组中的歌曲。我使用soundcloud-python包装器使我能够轻松完成这项工作。

我已经让两个Auth流正常工作(使用OAuth2或直接使用用户凭据),我可以使用python客户端通过执行调用来获取有关登录用户等的信息,如下所示:

print client.get('/me').username

这向我表明我已经正确地通过了授权,正如我所说,我通过这两种方法都可以使用它。

我的问题是,当我尝试提出以下请求时,作为示例添加/删除群组中的歌曲,我将始终收到404错误,无论该群组中是否已存在该曲目(来自示例)关闭Soundcloud API文档,在“为一个组贡献声音”下:

# contribute track to group
group = client.put('/groups/%d/contributions/%d' % (group.id, track.id))

如果我通过客户端对象对/ groups / {group-id} / contributions / {track-id}执行任何功能,我将始终收到404错误。如果我没有通过身份验证,我将收到401错误。我已经100%确定我已经通过API控制台测试它们使用了工作的group_id / track_id组合,并在必要时硬编码值以证明操作。

这让我感到困惑 - 如果我在API控制台(在Soundcloud API网站上)使用与python包装器失败的相同形式的URI,并且我通过OAuth进行了身份验证,那么GET / PUT和DELETE全部在通过soundcloud-python包装器失败的同一group_id和track_id上按预期运行。

还有其他人对此有任何疑问吗?他们有这个工作吗?

非常感谢您的任何帮助!

2 个答案:

答案 0 :(得分:0)

404错误表明您未经过身份验证。如果那不是问题那么, http://developers.soundcloud.com/docs/api/guide#uploading说(在“向群体发表声音”中):

... 同样,您也可以删除贡献。 (python示例)

 import soundcloud

 # create a client object with access token
 client = soundcloud.Client(access_token='YOUR_ACCESS_TOKEN')

 # delete track id 59 from group id 123
 client.delete('/groups/123/contributions/59')

答案 1 :(得分:0)

更新

我链接到下面的拉取请求已被接受并合并到API包装器中。

只需从Github获取更新的源代码,这应该是固定的。

P.S。对于最新的更新感到抱歉。


/contributions端点有问题 - 请参阅this github issue

我已经设法破解API以使其工作,直到在SoundCloud方面修复了错误。 对 client.py 文件进行以下修订:

def _resolve_resource_name(self, name):
    [...]
    name = name.rstrip('/').lstrip('/')
    if name[-13:] == 'contributions':
        return '%s%s/%s' % (self.scheme, self.host, name)
    return '%s%s/%s.json' % (self.scheme, self.host, name)

或者查看this pull request