# 技能请求接口

所有的文本请求都可以走技能请求接口,但是相关的技能权限需要在官网进行申请,当前支持技能:音乐、FM、新闻、百科、闲聊、闹钟、天气、股票。各技能的query文本示例如下表:

# query示例

query 技能
播放周杰伦的稻香 音乐
播放郭德纲的相声 FM
科技新闻 新闻
世界最长的河流 百科
陪我聊天 闲聊
帮我订一个下午五点的闹钟 闹钟
今天北京的天气怎么样 天气
腾讯股价 股票
下一首 通用控制

# 请求

请求地址: https://{BASE_URL}/xwcloudapi/text_to_skills

请求方式: post

# 请求参数

​ 请求参数包含三部分:请求query文本请求接口基础参数当前播放状态state_info。请求query文本示例如上表所示;请求接口基础参数相关描述见请求接口基础参数说明章节;

​ 技能请求必须携带state_info。对于通用控制的请求,需要依赖state_info.cur_res_info.skill_name进行判断是那个技能的通用控制,比如下一首,依赖state_info.cur_res_info.skill_name进行判断是音乐技能的下一首还是FM技能的下一首。 虽然state_info字段只有通用控制("收藏"、"取消收藏"、"播放收藏"、"下一首","上一首","暂停","继续播放","重播","单曲循环","顺序播放","循环播放","随机播放","快进","快退","音量大一点","音量小一点","静音","取消静音")的请求使用,但是在访问技能请求接口之前,无法确定是否为通用控制的请求,所以必须带上当前设备的播放状态state_info相关参数,尽量把可以获取到的参数带上,尤其是cur_res_info中的参数,避免通用控制不生效。

​ 对于state_info,必须携带state_info.client_addr字段。由于音乐资源地区版权问题,Q音要求请求需要携带客户端ip,用于判断客户所在地区。如果无法获取用户客户端ip,请与小微商务进行提前沟通。state_info 的字段组成如下:

field name field type required desc
cur_res_info json object No 当前播放资源信息,详细信息见下文
location_info json object No 位置信息,详细信息见下文
gps_info json object No GPS信息,详细信息见下文
client_addr string Yes 客户端ip地址
play_mode int No 0:顺序播放 1:列表循环 2:随机不循环 3:随机循环 4:单曲循环
play_state int No 1:歌曲开始 2:暂停 3:歌曲结束 4:歌单结束 11:没播完切歌
curent_time int No 上报时间

其中cur_res_info中字段如下

field name field type required desc
skill_name string No 技能名称,请求到资源时会传回技能名称
res_id string No 资源id
res_name string No 资源名,可以使用music_name字段
res_singer string No 演唱者
content string No 资源url
time_offset_ms int No 播放时间偏移

其中location_info 中字段如下:

field name field type required desc
contry string NO 国家
province string NO 省份
city string NO 城市
street string NO 街道
community string NO 社区

其中gps_info 中字段如下:

field name field type required desc
altitude double NO 海拔高度
latitude double NO 纬度
longitude double NO 经度
speed double NO 速度
standard_gps_time int NO 标准gps时间
# 一个请求示例

​ 目前推荐使用方式二:获取安全凭据接口获取凭证,所以请求示例都以此方式进行描述。如果仍然使用方式一获取凭证,请求示例中的pid、auth、query_id去掉,增加base_info字段,base_info相关描述详见基础说明章节。所有技能的请求格式一致,各技能对应的query不同,通过方式二获取安全凭据访问技能请求接口请求示例如下:

{
    "query": "我想听周杰伦的稻香",
		
    // 请求接口基础参数
    "pid": 324,
    "auth": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJiYXNlX2luZm8iOiJ7XCJjb2RlXCI6XCIwN2E0YTZlNTRlMDUwMjRlYmQ0MTMzMzM5Y2M3OTAzMFwiLFwicGlkXCI6ODIzOTIzNDc4LFwidGltZXN0YW1wXCI6XCIxNTk4NTk5NzA1XCJ9XG4iLCJleHAiOjE1OTg2MDY5MDV9.nBuDFO7CWfg9KLognHIy10WFIorzuMBBRNh_F8gSXY",
    "query_id": "KLDASOEWUROUQWIOEUROWEQVNZVFADSFOIOUWOEQR",
		
	// state_info相关参数
    "state_info": { 
        "cur_res_info":{ 
            "skill_name": "Music",
            "res_id": "unique_id=7091652&type=cur",
            "res_name": "冰雨",
            "res_singer": "刘德华",
            "content": "http://isure.stream.qqmusic.qq.com/C200002DMN9H2rxulA.m4a?guid=12347310&vkey=B0D71E80BF0CF55081A4DE84C2881F5E486D1A37EECA3DE2C6782E87359DF30013688A13102AC4B3BD6EF837D3E91E6CEEECFCA7BB77C467&uin=&fromtag=50",
            "time_offset_ms": 3053 
        } ,
        "client_addr": "192.168.134.12",
        "play_mode": 1,
        "play_state": 1,
        "curent_time": 1591172141
    }
}

注意:对于音乐技能的请求:没有通过注册音乐资源登录态接口注册登录态的用户,小微音乐技能只对其支持随心听的 query,对于已经通过注册音乐资源登录态接口注册登陆态的用户,除了随心听的query,还会支持语义点播,比如播放指定歌手、指定音乐等query。

​ 音乐随心听的query可以是"我想听音乐"、"我想听歌"、"播放音乐"等。请求方式与下面音乐技能请求 示例参数相同,返回数据格式相同。

# 结果返回

​ 返回结果包含四部分:code错误码提示、resources获取相关资源、skill技能名称、msg错误提示。

​ 对于返回的技能,通过skill字段进行判断。skill包含以下技能取值:

# skill取值
skill取值 含义
Baike 百科技能
Chat 小微闲聊
News 新闻
Music 音乐
FM-Crosstalk FM-相声
FM-Story FM-故事
FM-Station FM-电台
FM-Joke FM-笑话
FM-Comments FM-评书
FM-Novel FM-小说
Clock 闹钟
CommCtrl 通用控制
Weather 天气
Stock 股票
# code错误码说明
技能 错误码值 说明
音乐技能相关 0 成功
52000 未知错误
52001 音乐 系统错误,一般不会遇到
52002 音乐系统错误,一般不会遇到
52003 请求音乐服务的相关参数错误。
52004 请求的音乐资源不存在
52005 音乐账号未授权
52006 音乐授权信息校验失败
52007 音乐授权信息已经过期
52008 请求音乐相关接口超限,一般是请求频率太高。
52009 当前账户没有访问该资源权限。
52010 没有登录
52011 付费歌曲,非绿钻或付费包会员不能播放
52012 没找到指定的歌手或者歌曲
52013 因歌曲没有版权不能播放
52014 没找到任何歌曲
52015 因海外地区不能播放
52016 因歌曲为数字专辑歌曲不能播放
52017 设备的基础会员过期
52018 预拉取资源:没有更多数据
52019 预拉取资源:res_id不存在
52020 创建歌单内所有歌曲都没有版权
FM技能相关 54001 FM服务失败
新闻技能相关 55001 新闻服务失败
百科技能相关 56001 百科服务失败
# resources资源字段说明

​ 不同的技能返回的资源字段会有差别。音乐技能与FM技能返回的数据如下所示。

音乐技能请求返回

{
	"code": 0,
	"data": {
		"resources": [{
			"attach_info": "{}",
			"duration": 136,
			"extend_buf": "eyJleHBpcnlfdGltZSI6MTU4NDE0ODQ2OX0=",
			"mid": "003fhlM30c0ZQE",
			"music_album_name": "所有你想听的翻唱",
			"music_cover_url": "http://y.gtimg.cn/music/photo_new/T002R500x500M0000023ZJ4K3Qo5mL_1.jpg",
			"music_name": "我又初恋了",
			"music_singer": "小心怪兽",
			"play_count": -1,
			"playable": 1,
			"res_content": "http://isure.stream.qqmusic.qq.com/C200003vXWKk1BvPSf.m4a?guid=12347310&vkey=D7FE9A072A6CB4541C8989A31F14DA0E9A9E7E24F45CEDE48416EE71C5DB28043E4D26D44F45027057884B86AC8DB142C76CC0B25B9B6110&uin=&fromtag=50",
			"res_id": "unique_id=127136854&type=cur",
			"hot":1
		}, 
            ......// 省略歌曲信息
    ],
		"skill": "Music",
		"tts": "好的,请听小心怪兽,我又初恋了"
	},
	"msg": "OK"
}

FM技能请求返回

{
	"code": 0,
	"data": {
		"resources": [{
			"duration": 3510,
			"music_album_name": "坑王驾到",
			"music_cover_url": "http://imgcache.qq.com/fm/photo/programe/rmid_programe_360/y/4/000y0a0t3APty4.jpg?time=1524562574",
			"music_name": "探地穴(一)异僧豪夺香楠木 员外梦走大罗天",
			"music_singer": "相声小品休闲茶馆",
			"play_count": -1,
			"playable": 1,
			"res_content": "http://ws.stream.fm.qq.com/R196000y0a0t3APty4.m4a?fromtag=36&guid=1584065658&vkey=056F583736D957885FDCC2B741E3D02C46C11E4F700CB87A321A41F8252C6EF623FD2623677CA5919745001C844C9B9A889C3717B1378A12",
			"res_id": "unique_id=rd000y0a0t3APty4&type=3&album_id=rd003q4BfU3HYZaO&show_sequence=1"
		},
            ......// 省略相声信息
  	],
		"skill": "FM",
		"tts": "好的,为你播放 坑王驾到 探地穴(一)异僧豪夺香楠木 员外梦走大罗天"
	},
	"msg": "OK"
}

音乐、FM技能resources描述如下表所示:

字段 含义
duration 时长
extend_buf 歌词等信息的扩展字段,业务自定义*
mid 音乐的mid
music_album_name 专辑
music_cover_url 封面图片
music_name 歌曲名
music_singer 歌手名
play_count 播放次数,默认是0,如果是一次性的,为1
playable 是否可播放0:否,1:是
res_content 资源url
res_id 资源id
hot 是否收藏 0:未收藏 1:已收藏

新闻技能请求返回

{
	"code": 0,
	"data": {
		"resources": [{
			"music_cover_url": "http://inews.gtimg.com/newsapp_ls/0/12516970228_640330/0",
			"pub_time": "1600913688",
			"res_content": "http://media.dreamreader.qq.com/1101_2bad8d0d638f28d381682b47e0da06c1.f0.mp3?vkey=0FE9BE41145BE11B2E4030D2495FFD3EB08115A69C141FD39385C764F18E52AA5F06129C06BA0001276DD969DB25AED41FF15B04B86BCD6AECE383975FD480ED3934DE55D8234775E44F829E4B332815C9EA46B6016367C9&appid_sign=509029a5d5b7dd335551055048d0b6ee&appid_sign_timestamp=1600915153&appid=yunxiaowei&duration=55",
			"res_id": "20200924A03T46",
			"source": "有车以后",
			"summary": "上汽集团,一直以来在研发自动驾驶方面都非常积极,而且最新的技术产品对于我们消费者来说门槛也不高。这次体验的荣威i6 MAX,指导价为10.98-12.58万,即可体验到搭载上汽最新L2.5级的智能驾驶辅助系统。荣威i6 MAX,采用了荣威最新的设计语言,前格栅采用了“荣鳞展翼”造型设计,看上去非常立体且富有层次感,辨识度很高,同时,格栅上还有一个荧光绿/黄的“R标识”,保险杠两侧也有同样色彩鲜艳的色彩点缀,进一步提高前脸的辨识度。8.3秒破百的成绩对于它顶配不到13万的价格来说,也是挺诱人的。",
			"title": "8.3s破百、10万级售价,还有L2.5自动驾驶,荣威i6 MAX香吗"
		}, {
			"music_cover_url": "http://inews.gtimg.com/newsapp_ls/0/12516903419_640330/0",
			"pub_time": "1600912873",
			"res_content": "http://media.dreamreader.qq.com/1101_7a3b0a5264655ae092b83c976409f060.f0.mp3?vkey=B7404ECB1B3B00DB3E07B01041B9283C38B9ECB36C573EE859772EC3497BDF4A49881DC217914AB8829449A8BDCA6E05422B70C516FFBC4F19500D81D1C36ECC85CEFFF50C0F0A8A1B94B3BCC02BF7C527702E20CCF3A13A&appid_sign=509029a5d5b7dd335551055048d0b6ee&appid_sign_timestamp=1600915153&appid=yunxiaowei&duration=61",
			"res_id": "20200924A03G8A",
			"source": "功夫汽车",
			"summary": "很多人多土豪有很多误解,最明显的一个就是土豪的车一定都是特别贵的,不上大几十万都不成。虽然汉兰达的地位如日中天,但是真正的土豪最喜欢的却不是它,而是另一个十分给力的硬茬:大众途昂。在市场销量上今年8月份大众途昂已经卖出了7740台,在国内SUV市场排名33,不过在中大型SUV领域它已经排名第一,稳坐榜首。在国内消费者对于大众SUV的认可度是比较高的,而在外观部分相比汉兰达途昂的优势更加明显。车身尺寸上它的长宽高分别为5039、1989、1773毫米,轴距为2980毫米。这台合资SUV比汉兰达硬气,低配只要22万多,各位有想法吗?",
			"title": "土豪都喜欢的合资SUV,轴距3米同级销冠,不贵还带全时四驱"
		}],
		"skill": "News",
		"tts": "好的,为你播放新闻"
	},
	"msg": "OK"
}

新闻resources描述如下表所示:

字段 含义
res_content 新闻资源url
res_id 新闻id
music_cover_url 图片url
pub_time 发布时间
source 新闻来源
summary 摘要
title 标题

百科、股票、闲聊、天气技能请求返回

{
	"code": 0,
	"data": {
		"resources": [{
			"content": "周杰伦(Jay Chou,别名:杰伦,1979年1月18日-),出生于中国台湾新北市,毕业于淡江中学,中国台湾男歌手、演员、导演。2000年被吴宗宪发掘并推出首张专辑《Jay》。2005年涉足影视,以电影《头文字D》获第42届台湾电影金马奖及第25届香港电影金像奖“最佳新人”奖。2007年,自编自导自演的电影《不能说的秘密》获得台湾电影金马奖年度台湾杰出电影奖。2011年凭借专辑《跨时代》获得金曲奖最佳国语男歌手奖,并且第4次获得金曲奖最佳国语专辑奖。2020年10月24日,将举办嘉年华世界巡回演唱会澳洲悉尼站。"
		}],
		"skill": "Baike",
		"tts": "周杰伦(Jay Chou,别名:杰伦,1979年1月18日-),出生于中国台湾新北市,毕业于淡江中学,中国台湾男歌手、演员、导演。2000年被吴宗宪发掘并推出首张专辑《Jay》。2005年涉足影视,以电影《头文字D》获第42届台湾电影金马奖及第25届香港电影金像奖“最佳新人”奖。2007年,自编自导自演的电影《不能说的秘密》获得台湾电影金马奖年度台湾杰出电影奖。2011年凭借专辑《跨时代》获得金曲奖最佳国语男歌手奖,并且第4次获得金曲奖最佳国语专辑奖。2020年10月24日,将举办嘉年华世界巡回演唱会澳洲悉尼站。"
	},
	"msg": "OK"
}

content字段为请求返回的内容,百科、股票、闲聊、天气skill技能名称可取Baike、Chat、Stock、Weather。

通用控制请求返回

​ 通用控制包括("收藏"、"取消收藏"、"播放收藏"、"下一首","上一首","暂停","继续播放","重播","单曲循环","顺序播放","循环播放","随机播放","快进","快退","音量大一点","音量小一点","静音","取消静音")。

播放收藏只会播放音乐技能、FM技能的收藏,返回资源的数据格式与FM技能请求、音乐技能请求返回的数据格式相同。 ​ 其他的通用控制返回contrl_id、contrl_value两个字段代表不同的通用控制。返回的数据格式如下所示:

{
	"code": 0,
	"data": {
		"resources": [{
			"contrl_id": 1100010,
			"contrl_value": "unique_id=rd001LMIZE0Tfw5z&type=3&album_id=rd0027ZnyD1YChkU&show_sequence=1"
		}],
		"skill": "FM-Crosstalk",
		"tts": "已收藏,你也可以让我取消收藏"
	},
	"msg": "OK"
}

通用控制的各个功能与contrl_id、contrl_value的对应关系,如下表所示:

function contrl_id contrl_value
收藏 1100010 资源id
取消收藏 1100011 资源id
下一首 1000015
上一首 1000014
暂停 1000012
继续播放 1000010
重播 1000013 资源id
单曲循环 1000019 4
顺序播放 1000019 0
循环播放 1000019 1
随机播放 1000019 3
快进 1000017 5000
快退 1000017 -5000
音量大一点 1000000 10
音量小一点 1000000 -10
静音 1000002
取消静音 1000003

闹钟技能请求返回

{
    "code":0,
    "data":{
        "resources":[
            {
                "clock_id":36850,
                "clock_type":0,
                "event":"",
                "opt":1,
                "repeat_interval":"",
                "repeat_type":0,
                "service_type":0,
                "trig_time":1591174800
            }],
        "skill":"Clock"
    },
    "msg":"OK"
}

闹钟技能返回资源字段说明如下表:

字段 说明
clock_id 闹钟id (闹钟id+type唯一确定一个闹钟)
clock_type 1.一次性闹钟 2.重复闹钟
event 事件,为空标示没有事件
opt 设置闹钟的操作方式:1增加 2修改 3删除 4.修改闹钟类型
repeat_interval 闹钟重复类型的字符串,例如,"1111111"代表一周七天
repeat_type 闹钟重复类型,1表示每天一次、2表示每周一次、3表示每月一次
service_type 0:本地,1:定时播放 2:定时关闭skill,默认本地
trig_time 触发时间