我正在尝试使用soundcloud播放器,但是当我使用API教程中的代码时,我得到以下错误:“Resource”对象没有属性'__getitem__'
我不明白为什么embed\u info['html']不能工作,因为它正是https://developers.soundcloud.com/docs/api/guide#playing上所说的。我正在尝试做一个网页,将创建一个集从轨道对象,我已经在我的网站上盘存。在
def sc(request):
client = soundcloud.Client(client_id='my_id')
# get a tracks oembed data
track_url = 'http://soundcloud.com/forss/flickermood'
embed_info = client.get('/oembed', url=track_url)
# print the html for the player widget
print embed_info['html']
return render(request, 'rango/sc.html', {'embed' : embed_info})
查看soundcloudpythongithub repo中
Resource
对象的源代码,它们的文档似乎已经过时了。在Resource
定义了__getattr__
方法,而不是__getitem__
方法。这意味着您将不得不使用点表示法来访问您感兴趣的值,而不是切片表示法。正在更改:到
^{pr2}$输出:
我相信这就是你要找的。在
编辑:
要嵌入一个集合而不是一个音轨,您只需调用
client.get
,并将url
参数设置为相关播放列表的URL。要获取id为405726
的播放列表的oembed
数据:编辑2:
关于获取任意轨迹集的嵌入的主题:
您可以使用
ids
端点上的ids
查询参数在一个请求中查询多个不相关的磁道。它接受以逗号分隔的轨迹ID列表。用法:返回包含轨迹13158665和6621631的列表。在
不幸的是,a)不能直接使用带有}的客户机重新创建此请求,也不能仅仅通过将成功地
client.get('/tracks', ids='13158665,6621631')
或{curl
作为client.get('/oembed', url=our_clever_url)
的URL参数来重新创建此请求。在至少,我们已经发现了一个局限性,幸运的是,我们总是可以在所提供的客户机之外测试我们是否可以做我们需要的。使用requests库,我们可以查询API本身,sans wrapper:
因此,我们至少可以通过id在一个请求中手动检索任意一组轨迹
现在的问题是:
/oembed
端点是否会接受一个带有ids
查询参数的URL并相应地作出响应?还需要测试一下,一会儿就会更新。在编辑3:
当我只需要一个单曲/播放列表(通过资源URL作为
url
查询参数传递)时,我能够让/oembed
端点手动返回XML,而且以前我可以使用ids
查询参数通过/tracks
端点检索多个单独的曲目。不幸的是,/oembed
端点不支持检索任意一组轨迹ID。你得试试别的办法。在相关问题 更多 >
编程相关推荐