Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用Soundcloud API在Django中创建Set

用Soundcloud API在Django中创建Set
EN

Stack Overflow用户
提问于 2015-09-06 16:20:18
回答 1查看 527关注 0票数 0

我正在尝试对soundcloud进行实验,但是当我使用API教程中的代码时,我得到了以下错误:'Resource‘对象没有属性'__getitem__'

我不明白为什么嵌入信息‘’html‘会在https://developers.soundcloud.com/docs/api/guide#playing上说的那样不起作用。我正在尝试做一个网页,将创建一套从轨道对象,我已在我的网站上清点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-06 16:35:00

查看soundcloud中Resource对象的源代码,它们的文档似乎已经过时了。

Resource定义__getattr__方法,但不定义__getitem__方法。这意味着您必须使用点表示法来访问您感兴趣的值,而不是片表示法。改变:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print embed_info['html']

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print embed_info.html

产出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<iframe width="100%" height="400" scrolling="no" frameborder="no" 
src="https://w.soundcloud.com/player/?visual=true&url=https%3A%2F
%2Fapi.soundcloud.com%2Ftracks%2F293&show_artwork=true&
client_id=96e00f360883e6ef77c531acfc8ee4c3"></iframe>

我相信这就是你要找的。

编辑

要嵌入集而不是轨道,只需调用client.get,并将url参数设置为所述播放列表的URL。使用id oembed获取播放列表的405726数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def sc(request):
    client = soundcloud.Client(client_id='my_id')

    # get a playlist's oembed data
    playlist_url = "http://api.soundcloud.com/playlists/405726"
    embed_info = client.get('/oembed', url=playlist_url)

    # print the html for the player widget
    print embed_info.html

    return render(request, 'rango/sc.html', {'embed' : embed_info})

编辑2

关于获取任意一组轨道的嵌入的主题:

可以使用ids端点上的/tracks查询参数在单个请求中查询多个不相关的轨道。它接受一个逗号分隔的轨道ids列表。用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ curl "http://api.soundcloud.com/tracks?client_id=YOUR_CLIENT_ID&ids=13158665,6621631"

返回包含轨道13158665和6621631的列表。

不幸的是,这个请求不能使用client.get('/tracks', ids='13158665,6621631')client.get('/tracks?ids=13158665,6621631')直接使用客户端重新创建,或者仅仅通过将我们成功地将curl编辑的URL作为url参数传递给client.get('/oembed', url=our_clever_url)来重新创建。

至少,我们已经发现了一个限制,幸运的是,我们总是可以在提供的客户端之外下降来测试我们是否可以做我们需要做的事情。使用请求库,我们可以查询API本身,sans包装器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

client_id='my-id'

track_ids = ["13158665", "6621631"]
tracks_url ='http://api.soundcloud.com/tracks'

payload = {'client_id': client_id, 'ids': ','.join(track_ids)}
response = requests.get(tracks_url, params=payload)
print response.status_code
print response.json()

因此,我们至少可以通过id在一个请求中手动检索任意一组轨道。

现在的问题是:/oembed端点会接受带有ids查询参数的ids并相应地做出响应吗?还需要测试一下,一会儿再更新。

编辑3

当我只想要一个单一的轨道/播放列表(通过资源URL作为url查询参数传递)时,我能够让url端点手动返回ids,而且以前我已经能够使用ids查询参数通过/tracks端点检索多个单独的曲目。不幸的是,/oembed端点不支持检索任意一组跟踪ids。你得试试别的办法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32429594

复制
相关文章
用laravel dingo/api创建产品api
  沿着上一篇来讲,我们来创建一个简单的item产品api,也是用到laravel dingo/api来实现,对dingo/api不熟的朋友可以翻看前面的文章。好,我们随着ytkah一起来创建产品api
ytkah
2018/08/01
7360
用laravel dingo/api创建产品api
Python用Django写restful api接口
用Python如何写一个接口呢,首先得要有数据,可以用我们在网站上爬的数据,在上一篇文章中写了如何用Python爬虫,有兴趣的可以看看:
六月的雨
2020/03/27
2.2K0
用laravel dingo/api创建简单的api
如果你曾经使用过 API 你就会知道大多数服务都来自子域或前缀。前缀或子域是必须的,但只需要一个。请避免使用版本号作为你的前缀或子域,因为版本控制是通过 header 头 Accept 处理的。
ytkah
2018/08/01
2K0
快用Django REST framework写写API吧
Django默认是前后端绑定的,提供了Template和Form,现在流行前后端分离项目,Python大佬坐不住了,于是便有了Django REST framework:https://github.com/tomchristie
dongfanger
2020/12/18
1.1K0
快用Django REST framework写写API吧
借助 iText 用代码在 PDF 中创建空白签名域
首选,要获取 PdfStamper 对象: PdfStamper ps = new PdfStamper(reader, bos); 然后,要获取到需要创建签名域的矩形区域: // 创建数组签名域 int x = 300, y = 400, width = 200, height = 200; // 坐标系远点位于页面左下角,左下角到右下角为 x 轴,左下角到左上角为 y 轴 Rectangle areaSignatureRect = new Recta
LeoXu
2018/08/15
2.4K1
python中的集合 (set) 的创建和使用
集合中只能存储不可变对象 集合中存储的对象是无序(不是按照元素的插入顺序保存) 集合中不能也不会出现重复的元素 创建集合: 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
matinal
2023/10/13
2540
【Rust日报】 2019-05-16:在Rust中创建C/C++ API
这个清单如果继续写下去会很长,Rust已经在众多领域陆续开花了。Rust社区感谢有你!
MikeLoveRust
2019/07/09
9820
99 - 在Django中读写Session
请解释Session的概念,以及如何在Django中读写Session Session(服务端, key-value) Cookie(Map, key-value) # session.py from django.http import HttpResponse def writeSession(request): request.session['name'] = 'Bill' request.session['age'] = 20 return HttpResponse('wr
ruochen
2021/06/27
1.4K0
99 - 在Django中读写Session
在nodejs中创建cluster
在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。本文将会介绍如何创建nodejs的集群cluster。
用户2323866
2021/06/22
3.4K0
在nodejs中创建cluster
在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。本文将会介绍如何创建nodejs的集群cluster。
程序那些事
2021/01/28
3.2K0
在 PostgreSQL 中解码 Django Session
会话(session)是任何基于 HTTP 的 web 框架的重要组成部分。它使得 web 服务器可以记录重复请求的 HTTP 客户端而不需要对每一次请求重新进行认证。记录会话的方式有多种。其中的一些方法不需要你服务器保持会话数据(如 JSON Web Tokens),而另外一些则需要。
Miigon
2022/10/27
3.2K0
在 PostgreSQL 中解码 Django Session
python中创建集合的语句_Python 集合(set) 介绍
#1.经理有:曹操,刘备,孙权#技术员有:曹操,孙权,张飞, 关羽#用集合求:#1. 即是经理也是技术员的有谁?#2. 是经理,但不是技术人员的都有谁?#3. 是技术人员,但不是经理的人都有谁?#4. 张飞是经理吗?#5. 身兼一职的人都有谁?#6. 经理和技术人员共有几个人?
用户7886150
2021/01/26
1.8K0
用 django2, simpleUI, ckeditor 创建博客管理后台
* 本文代码同步更新至 https://gitee.com/yinzhuoqun/django2 *
卓越笔记
2023/02/18
4740
用 django2, simpleUI, ckeditor 创建博客管理后台
如何在 Django 中创建抽象模型类?
Django 中的抽象模型类是一个模型,它用作其他模型继承的模板,而不是一个旨在创建或保存到数据库的模型。在应用程序中,可以使用抽象模型定义多个模型共享的相似字段和行为。使用 Django,您可以定义一个派生自 Django.db.models 的模型类,以建立一个抽象模型类。
很酷的站长
2023/08/11
2350
如何在 Django 中创建抽象模型类?
点击加载更多

相似问题

用SoundCloud API暂停声音

10

用PHP在SoundCloud中创建播放列表

20

如何使用javascript创建Soundcloud播放列表( set )?

22

Soundcloud API:可以获取我收藏的'playlist/set‘数据吗?

10

在django中获取soundcloud授权码

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文