技能内调用
本页是技能内调用的请求和响应的数据结构定义,技能内调用接口请参考: 根据指定意图获取skill结果
指令数据
指令列表中可能会存在多个指令,调用方根据指令的type选择需要解析的指令使用。
指令会出现增加的情况、同一指令中可能会出现字段的增加。但不会字段的减少或变更。
调用方需要保证程序在出现无法识别的指令后也能正常工作。
directive | 说明 |
---|---|
AudioPlayer.Play | 播放音频资源的指令 |
AudioPlayer.Play
该指令所有技能通用,返回的播放资源不一定是喜马拉雅资源。若仅需要获取喜马拉雅资源,建议在小雅OS开放平台中关闭喜马拉雅以外的技能。
metadata中的id、albumId的数据类型是字符串、且非必不为空。
{
"type": "AudioPlayer.Play",
"audioItem": {
"stream": {
"url": "http://fdfs.xmcdn.com/group21/M07/E1/9A/wKgJKFhaF1Hir09uABeqPmq8V3Y998.mp3", // 音频地址
"token": "", // 目前无意义
"offsetInMilliseconds": 0 // 音频偏移量,毫秒。注意: 由于喜马拉雅内部云历史机制只保留至秒级,若回传精确到毫秒,此处返回值会向前取整。
// 例如回传的偏移量为45987,此处会返回45000。
},
"metaData": {
"id": "27299018", // 音频id
"title": "",// 音频标题、非必不为空
"albumId": "", // 专辑id,喜马拉雅资源包含专辑id、非必不为空
"albumTitle": "", // 专辑标题,喜马拉雅资源包含专辑标题、非必不为空
"artist": "", // 作者、非必不为空
"art": { // 背景图、非必不为空
"small": "http://fdfs.xmcdn.com/group47/M0A/9C/59/wKgKk1tYNLzyfxrAAAIVC-YGMlU958_mobile_small.jpg",
"middle": "",
"large": ""
}
}
}
}
Card
技能在某些时机,需要带屏幕的设备辅助显示一些信息,此时将会在协议中返回相应的数据。
例如:
目前仅支持登录卡片,数据结构如下:
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
ui | JsonArray | 是 | 要显示为登录卡片的信息 |
ui[].type | String | 是 | 登录卡片固定值:skill_login |
ui[].title | String | 是 | 主标题,一般为技能名称,参考上图 |
ui[].subTitle | String | 是 | 子标题,一般为登录引导语,告诉用户如何登录。 |
ui[].icon | String | 是 | 账号体系的图标,如果使用喜马拉雅账号登录,一般使用喜马拉雅的icon即可 |
ui[].loginDetail | SkillLoginDetail | 是 | 当前技能支持的登录信息 |
text | String | 是 | 上图中的文字提示信息 |
{
"ui": [
{
"type": "skill_login",
"title": "喜马拉雅有声技能",
"subTitle": "请使用喜马拉雅账号登录",
"icon": "http://fdfs.xmcdn.com/group64/M04/E8/5A/wKgMc12AkQPgfYyxAACeaNw-Emg484.png",
"loginDetail": {
"h5": {
"loginPage": "https://m.ximalaya.com/login"
},
"status": 0, // 当前是否已经登录,未登录为0 登录为1
"skillPtfId" : "xmly-xy1",
}
}
],
"text": "本专辑需要登录后才能收听哦""
}
登录信息的处理方式,请参考: 技能登录模式-h5
技能业务数据
目录
喜马资源
Domain | Intent | 技能名称 |
---|---|---|
xima | get_resource_kits | 获取当前设备的资源包列表 |
xima | get_albums_by_resource_id | 根据资源包ID获取热门专辑列表 |
xima | upload_play_records | 续播-回传播放记录 |
xima | get_tracks_in_current_page | 获取声音所在页面的声音列表信息 |
xima | get_tracks_by_album_id | 获取指定id专辑的音频列表 |
xima | recommendations | 获取专辑推荐列表 |
xima | search_albums | 专辑搜索接口 |
xima | get_announcer_albums | 获取指定专辑的主播下的专辑列表接口 |
xima | get_relative_albums | 获取指定专辑的相关专辑列表接口 |
喜猫资源
Domain | Intent | 技能名称 |
---|---|---|
xxm | get_tracks_by_album_id | 获取指定专辑id的音频列表 |
xxm | get_tracks_in_current_page | 获取声音所在页面的声音列表 |
客户端获取信息
Domain | Intent | 技能名称 |
---|---|---|
BizApp | skillCenter | 获取技能中心信息 |
BizApp | skillDetail | 获取技能详情 |
账号管理
Domain | Intent | 技能名称 |
---|---|---|
Ucenter | skillLogout | 退出技能登录 |
用户设备管理
Domain | Intent | 技能名称 |
---|---|---|
BizUser | mobileRegister | 用户手机设备注册 |
BizUser | speakerRegister | 用户音箱注册 |
BizUser | mobileDelete | 删除用户手机设备的绑定关系 |
BizUser | speakerList | 用户手机绑定的音箱列表信息 |
BizUser | speakerInfo | 用户手机绑定的音箱信息 |
BizUser | speakerUpdate | 更新用户手机绑定的音箱 |
BizUser | speakerDelete | 用户音箱设备解绑 |
BizUser | mobileControlSpeakerUpdate | 变更音箱控制的设备 |
BizUser | updateDetect | App检测更新 |
BizUser | apnsDeviceTokenRegister | ios推送服务注册(app) |
BizUser | pushServiceRegister | 推送服务注册(app或者speaker) |
BizUser | updateStatus | 音箱状态上报接口 |
BizUser | getStatus | 获取音箱状态 |
系统控制
Domain | Intent | 技能名称 |
---|---|---|
general_command | next | 下一首歌曲 |
general_command | change | 换一首歌曲 |
general_command | previous | 上一首歌曲 |
general_command | mute | 静音 |
general_command | unmute | 取消静音 |
general_command | pause | 暂停 |
general_command | stop | 停止 |
general_command | quit | 退出 |
general_command | confirm | 确认 |
general_command | cancel | 取消 |
general_command | power_off | 关机 |
general_command | up_command | 调高音量 |
general_command | down_command | 调低音量 |
general_command | max_command | 音量调至最大 |
general_command | min_command | 音量调至最小 |
general_command | set_command | 设置音量的值 |
general_command | ask_volume | 查询当前音量 |
general_command | open_command | 打开蓝牙 |
general_command | close_command | 关闭蓝牙 |
general_command | switch_command | 切换蓝牙 |
general_command | go_to_sleep | 我要睡觉 |
general_command | leave_out | 我要离开 |
general_command | auto_next | 自动下一首歌曲 |
FM
Domain | Intent | 技能名称 |
---|---|---|
fm | report_break_second | 播放时间上报 |
闹钟
Domain | Intent | 技能名称 |
---|---|---|
alarm | set_alarm | 设置闹钟 |
alarm | view_alarm | 查看闹钟 |
alarm | delete_alarm/cancel_alarm | 删除闹钟/取消闹钟 |
提醒
Domain | Intent | 技能名称 |
---|---|---|
reminder | set_reminder | 设置提醒 |
reminder | view_reminder | 查看提醒 |
reminder | delete_reminder/cancel_reminder | 删除提醒/取消提醒 |
找手机
Domain | Intent | 技能名称 |
---|---|---|
find_my_phone | find_my_phone | 寻找手机 |
BizApp | getCellPhone | 获取手机号 |
BizApp | setCellphone | 设置手机号 |
我的快递
Domain | Intent | 技能名称 |
---|---|---|
BizApp | getMailExpressPhone | 快递绑定手机号查询 |
BizApp | sendVerifyCode | 发送验证码 |
BizApp | setMailExpressPhone | 绑定手机号 |
express | view_express | 查快递 |
数学运算
Domain | Intent | 技能名称 |
---|---|---|
calculator | calculator | 数学计算 |
整点报时
Domain | Intent | 技能名称 |
---|---|---|
setting | open_tell_time/close_tell_time | 打开或者关闭整点报时 |
BizClock | listForSpeaker | 获取整点列表 |
计时器
Domain | Intent | 技能名称 |
---|---|---|
timer | set_timer | 设置计时器 |
timer | cancel_timer | 取消计时 |
时钟
Domain | Intent | 技能名称 |
---|---|---|
calendar | search_calendar | 查询时间 |
音箱
Domain | Intent | 技能名称 |
---|---|---|
BizSpeaker | getStatus | 获取音箱状态 |
打电话
Domain | Intent | 技能名称 |
---|---|---|
call | sync_call_contacts | 同步通讯录 |
call | call_nickname | 昵称查找联系人 |
call | call | 打电话 |
call | answer | 接通电话 |
call | refuse | 拒接电话 |
call | ring_off | 挂断电话 |
call | contacts | 查看通讯录 |
call | call_record | 查看通话记录 |
喜马资源
获取当前设备的资源包列表
{
"domain":"xima",
"intent":"get_resource_kits",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | get_resource_kits |
slots | JsonObject | 否 |
返回值:
请求成功时,http状态码为200,response.data中包Page对象,对象中Items数组元素为ResourceKit类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
根据资源包ID获取热门专辑列表
{
"domain":"xima",
"intent":"get_albums_by_resource_id",
"slots":{"id":123,"offset":0,"limit":20}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | get_albums_by_resource_id |
slots | JsonObject | 是 | |
slots.id | Long | 是 | ResourceKit的id |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回的数量,最小为1,最大为50,默认为20 |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Album类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
续播-回传播放记录
{
"domain":"xima",
"intent":"upload_play_records",
"slots":{"clientIp":"","playRecords":[{"contentType":1,"trackId": "183398349","albumId":"22512662","startedAt":1557824579000,"endedAt":1557824580000,"playedSecs":200}],"distributionChannel":""}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | upload_play_records |
slots | JsonObject | 是 | |
slots.clientIp | String | 是 | 客户端的ip,若中间有服务端代理,需要上报真实客户的ip |
slots.distributionChannel | String | 否 | 分销渠道名,如果将资源进行分销,可填入分销的渠道名 |
slots.playRecords | JsonObject | 是 | 点播播放记录PlayRecord的列表(JSONArray)的序列化结果 |
返回值:
请求成功时,http状态码为200,response.data中包含以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
status | String | 状态码 200为正常 |
message | String | 返回ok |
获取声音所在页面的声音列表信息
{
"domain":"xima",
"intent":"get_tracks_in_current_page",
"slots":{"id":0,"albumId":0,"limit":0,"sort":"asc","contextSorted":true}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | get_tracks_in_current_page |
slots | JsonObject | 是 | |
slots.id | Long | 是 | 指定音频的id |
slots.albumId | Long | 是 | 专辑的id |
slots.limit | Integer | 否 | 返回的数量,最小为1,最大为50,默认为20 |
slots.sort | String | 否 | 返回结果的排序方式: asc-喜马拉雅正序,desc-喜马拉雅逆序,默认为 asc |
slots.contextSorted | Boolean | 否 | 是否需要根据专辑中声音的上下文关系进行排序,默认为false |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Track类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取指定id专辑的音频列表
{
"domain":"xima",
"intent":"get_tracks_by_album_id",
"slots":{"id":123,"limit":0,"sort":"asc"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | get_tracks_by_album_id |
slots | JsonObject | 是 | |
slots.id | Long | 是 | 专辑的id |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回的数量,最小为1,最大为50,默认为20 |
slots.sort | String | 否 | 返回结果的排序方式: asc-喜马拉雅正序,desc-喜马拉雅逆序,默认为 asc |
slots.contextSorted | Boolean | 否 | 是否需要根据专辑中声音的上下文关系进行排序,默认为false |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Track类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取专辑推荐列表
{
"domain":"xima",
"intent":"recommendations",
"slots":{"offset":0,"limit":20}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | recommendations |
slots | JsonObject | 否 | |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回结果中的最大条目数量,默认为5,最大不超过50 |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Album类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
专辑搜索接口
{
"domain":"xima",
"intent":"search_albums",
"slots":{"keyword":"郭德纲","offset":0,"limit":20}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | recommendations |
slots | JsonObject | 是 | |
slots.keyword | String | 是 | 需要搜索的关键词 |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回结果中的最大条目数量,默认为5,最大不超过50 |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Album类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取指定专辑的主播下的专辑列表接口
{
"domain":"xima",
"intent":"get_announcer_albums",
"slots":{"albumId":"123","offset":0,"limit":20}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | get_announcer_albums |
slots | JsonObject | 是 | |
slots.albumId | Integer | 是 | 专辑id |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回结果中的最大条目数量,默认为5,最大不超过50 |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Album类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取指定专辑的相关专辑列表接口
{
"domain":"xima",
"intent":"get_relative_albums",
"slots":{"albumId":"11","offset":0,"limit":20}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | get_relative_albums |
slots | JsonObject | 是 | |
slots.albumId | String | 是 | 专辑id |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回结果中的最大条目数量,默认为5,最大不超过50 |
返回值:
请求成功时,http状态码为200,response.data中包含Page对象,对象中Items数组元素为Album类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取指定专辑id的音频列表
{
"domain":"xxm",
"intent":"get_tracks_by_album_id",
"slots":{"id":123,"offset":0,limit":0,"sort":"asc"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xxm |
intent | String | 是 | get_tracks_by_album_id |
slots | JsonObject | 是 | |
slots.id | long | 是 | 专辑的id |
slots.offset | Integer | 否 | 首条记录的索引位置,默认为0 |
slots.limit | Integer | 否 | 返回的数量,最小为1,最大为50,默认为20 |
slots.sort | String | 否 | 返回结果的排序方式:asc-喜马拉雅正序,desc-喜马拉雅逆序,默认为asc |
返回值:
请求成功时,http状态码为200,response.data中包含xxmPage对象,对象中Items数组元素为xxmTrack类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取声音所在页面的声音列表
{
"domain":"xxm",
"intent":"get_tracks_in_current_page",
"slots":{"id":0,"limit":0,"sort":"asc"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xxm |
intent | String | 是 | get_tracks_in_current_page |
slots | JsonObject | 是 | |
slots.id | long | 是 | 指定音频的id |
slots.limit | Integer | 否 | 返回的数量,最小为1,最大为50,默认为20 |
slots.sort | String | 否 | 返回结果的排序方式: asc-喜马拉雅正序,desc-喜马拉雅逆序,默认为 asc |
返回值:
请求成功时,http状态码为200,response.data中包含xxmPage对象,对象中Items数组元素为xxmTrack类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
客户端获取信息
获取技能中心信息
{
"domain":"BizApp",
"intent":"skillCenter",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | skillCenter |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response.data.skill_list中包含SkillList对象,其中skill_collect列表item结构为Skill对象;
若请求出错,http状态码为500,返回ErrorResponse对象
获取技能详情
{
"domain":"BizApp",
"intent":"skillDetail",
"slots":{"skill_id":"os.skill.14"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | skillDetail |
slots | JsonObject | 是 | |
slots.skill_id | String | 是 | 技能ID |
返回值:
请求成功时, http状态码为200,response.data中包含SkillDetail对象;
若请求出错,http状态码为500,返回ErrorResponse对象
账号管理
退出技能登录
{
"domain":"Ucenter",
"intent":"skillLogout",
"slots":{"skillId":"os.skill.14"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | Ucenter |
intent | String | 是 | skillLogout |
slots | JsonObject | 是 | |
slots.skillId | String | 是 | 技能ID |
返回值:
请求成功时, http状态码为200,response.data中包含SkillLoginDetail对象;
若请求出错,http状态码为500,返回ErrorResponse对象
二维码授权登录
{
"domain":"Ucenter",
"intent":"skillQrCodeLogin",
"slots":{"qrId":"3DE4F2E57538458A9C87735C83A5D091"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | Ucenter |
intent | String | 是 | skillQrCodeLogin |
slots | JsonObject | 是 | |
slots.qrId | String | 是 | 二维码ID |
返回值:
请求成功时, http状态码为200,response.data中包含status字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
status | String | 二维码登录状态 waiting未登录,expired二维码过期,loggedIn登录成功 |
用户设备管理
用户手机设备注册
{
"domain":"BizUser",
"intent":"mobileRegister",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | mobileRegister |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response.data中包含MobileInfo对象;
若请求出错,http状态码为500,返回ErrorResponse对象
用户音箱注册
{
"domain":"BizUser",
"intent":"speakerRegister",
"slots":{"ssid":123,"mac":"1d:12:c2:2d","name":"ab"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | mobileRegister |
slots | JsonObject | 是 | |
slots.ssid | Integer | 否 | |
slots.mac | String | 否 | |
slots.name | String | 否 |
返回值:
请求成功时, http状态码为200,response.data中包含speaker_id字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
speaker_id | Integer | 后台存储音箱的id值 |
删除用户手机设备的绑定关系
{
"domain":"BizUser",
"intent":"mobileDelete",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | mobileDelete |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response.data中包含is_done字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_done | boolean | true为删除成功;false为删除失败 |
用户手机绑定的音箱列表信息
{
"domain":"BizUser",
"intent":"speakerList",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | speakerList |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response.data中包含SpeakerList对象,对象中Items数组元素为Speaker类型的对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"speaker_list": [
{
"speaker_id": 20,
"sn": "XYDFZT0003",
"client_id": "os.client.sdkdemo",
"product_id": "S_PROD1_7",
"product_name": "",
"rom_version": "5.0.2",
"speaker_version": "0.0.6",
"name": "",
"ssid": "DFZT",
"mac": "94:E0:D6:5B:C8:4F"
},
{
"speaker_id": 27,
"sn": "XYDFZT0004",
"client_id": "os.client.sdkdemo",
"product_id": "N_PROD1_7",
"product_name": "",
"rom_version": "5.0.2",
"speaker_version": "0.0.8",
"name": "小雅AI音箱",
"ssid": "DFZT",
"mac": "AC:20:31:66:E5:0A"
},
{
"speaker_id": 30,
"sn": "RX902000206",
"client_id": "os.client.sdkdemo",
"product_id": "N_PROD1_7",
"product_name": "",
"rom_version": "5.0.3",
"speaker_version": "0.0.8",
"name": "小雅AI音箱",
"ssid": "DFZT",
"mac": "AC:20:31:66:E5:0A"
},
{
"speaker_id": 31,
"sn": "RX902000033",
"client_id": "os.client.sdkdemo",
"product_id": "N_PROD1_7",
"product_name": "",
"rom_version": "5.0.2",
"speaker_version": "0.0.8",
"name": "小雅AI音箱",
"ssid": "DFZT",
"mac": "F8:58:6C:DE:ED:DA"
}
]
}
用户手机绑定的音箱信息
{
"domain":"BizUser",
"intent":"speakerInfo",
"slots":{"speaker_id":123}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | speakerInfo |
slots | JsonObject | 是 | |
slots.clientIp | Integer | 是 | 数据库存储的音箱的id值 |
返回值:
请求成功时,http状态码为200, response.data中包含SpeakerInfo对象;
若请求出错,http状态码为500,返回ErrorResponse对象
更新用户手机绑定的音箱
{
"domain":"BizUser",
"intent":"speakerUpdate",
"slots":{"name":"abc"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | speakerUpdate |
slots | JsonObject | 是 | |
slots.name | String | 是 | 音箱的名称 |
返回值:
请求成功时,http状态码为200, response.data中包含is_done字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_done | boolean | true为删除成功;false为删除失败 |
用户音箱设备解绑
{
"domain":"BizUser",
"intent":"speakerDelete",
"slots":{"sn":"123","client_id":"cb1"}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | speakerDelete |
slots | JsonObject | 否 | |
slots.sn | String | 是 | 音箱的序列号 |
slots.client_id | String | 是 | 客户id |
返回值:
请求成功时,http状态码为200, response.data中包含is_done字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_done | boolean | true为删除成功;false为删除失败 |
变更音箱控制的设备
{
"domain":"BizUser",
"intent":"mobileControlSpeakerUpdate",
"slots":{"sn":"123","client_id":"ci1","product_id":"sprod3"}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | mobileControlSpeakerUpdate |
slots | JsonObject | 否 | |
slots.sn | String | 是 | 音箱的序列号 |
slots.client_id | String | 是 | 客户id |
slots.product_id | String | 是 | 产品id |
返回值:
请求成功时,http状态码为200, response.data中包含is_done字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_done | boolean | true为删除成功;false为删除失败 |
App检测更新
{
"domain":"BizUser",
"intent":"updateDetect",
"slots":{"pkg":"123","rom_version":"123","speaker_device_id":"123","speaker_version":"123"}
}
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | mobileControlSpeakerUpdate |
slots | JsonObject | 否 | |
slots.pkg | String | 是 | |
slots.rom_version | String | 是 | |
slots.speaker_device_id | String | 是 | |
slots.speaker_version | String | 是 |
请求成功时, http状态码为200,response.data中包含Rom对象,Apk对象和Progress对象;
若请求出错,http状态码为500,返回ErrorResponse对象
ios推送服务注册(app)
{
"domain":"BizUser",
"intent":"apnsDeviceTokenRegister",
"slots":{"mobile_id":"123","mobile_device_id":"123","apns_device_token":"123"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | apnsDeviceTokenRegister |
slots | JsonObject | 是 | |
slots.mobile_id | String | 是 | 手机ID 通过mobileRegister获得 用户未登陆状态下 mobile_id 可以为 0 |
slots.mobile_device_id | String | 是 | 手机device_id |
slots.apns_device_token | String | 是 | IOS平台分配给手机的deviceToken |
返回值:
请求成功时,http状态码为200, response.data中包含is_done字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_done | boolean | true为删除成功;false为删除失败 |
推送服务注册(app或者speaker)
{
"domain":"BizUser",
"intent":"pushServiceRegister",
"slots":{"device_name":"123"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | pushServiceRegister |
slots | JsonObject | 是 | |
slots.device_name | String | 是 | 设备名称 |
返回值:
请求成功时,http状态码为200, response.data中包含以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
success | boolean | |
device_name | String | |
product_key | String | |
iot_id | String | |
request_id | String | |
device_secret | String |
音箱状态上报接口
{
"domain":"BizUser",
"intent":"updateStatus",
"slots":{"volume":"12","bluetooth_status":"0","mic_status":"0","action_vod":"123","volume_status":"0","action":"123","speaker_device_id":"123","network_status":"0"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | updateStatus |
slots | JsonObject | 是 | |
slots.volume | String | 是 | 音量 |
slots.bluetooth_status | String | 否 | 蓝牙状态 0:关闭 1:只是打开但闲置 2:蓝牙打开处于播放状态 |
slots.mic_status | String | 是 | 0表示禁麦,1表示开麦 |
slots.action_vod | String | 是 | |
slots.volume_status | String | 是 | 声音状态 0:静音 1-100 具体大小 |
slots.action | String | 是 | |
slots.speaker_device_id | String | 是 | 音箱设备ID |
slots.network_status | String | 是 | 网络状态 0:无网络 1:有网络 |
返回值:
请求成功时, http状态码为200,response.data中包is_update字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_update | boolean | true成功;false失败 |
获取音箱状态
{
"domain":"BizUser",
"intent":"getStatus",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | getStatus |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response.data中包含以下字段;
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
tip | String | |
onlineStatus | Integer | 1为在线,0为离线 |
networkStatus | Integer | 网络状态 0:无网络 1:有网络 |
bluetoothStatus | Integer | 蓝牙状态 0:关闭 1:只是打开但闲置 2:蓝牙打开处于播放状态 |
micStatus | Integer | 禁麦状态 0:已禁麦 1:未禁麦 |
volume | Integer | 音量大小 |
action | String | |
action_key | String | |
action_vod | JsonObject |
系统控制
下一首歌曲
{
"domain":"general_command",
"intent":"next",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | next |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象和data对象;
response.data中包含PlayerItemInfo对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,南征北战,生来倔强",
"ssml": ""
},
"directives": [
{
"type": "AudioPlay.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"token": "",
"offsetInMilliseconds": 0
},
"metaData": {
"title": "生来倔强",
"id": "246/003LtC4H15LRSE.mp3",
"albumTitle": "生来倔强",
"albumId": 0,
"artist": "南征北战",
"art": {
"small": "",
"middle": "",
"large": ""
}
}
}
}
],
"data": {
"playerItemInfo": {
"hot": 0,
"artStyle": "",
"useDealPlayerItem": false,
"type": 1,
"source": 11,
"id": "246/003LtC4H15LRSE.mp3",
"title": "生来倔强",
"artistId": "0",
"artist": "南征北战",
"albumId": 0,
"albumIncludeTracksCount": 0,
"album": "生来倔强",
"categoryId": "",
"category": "",
"breakSecond": 0,
"doubanId": 0,
"picSmall": "",
"picMiddle": "",
"picLarge": "",
"isPaid": false,
"isCouldPlay": 0,
"duration": 0,
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"sqUrl": "",
"_urlHook": false,
"_urlHookPlayed": false,
"subSource": 0,
"audioVoice": "0.271641",
"sqAudioVoice": "",
"ABtest": 0,
"resType": 204,
"triggerType": 1
},
"next": true,
"demandType": 1,
"count": 1,
"offset": 1,
"bi_report": {
"trigger_type": "",
"item_type": "101",
"item_source": "orion",
"item_id": "246/003LtC4H15LRSE.mp3",
"item_title": "生来倔强",
"item_paid_type": "0",
"item_orig_price": "0",
"item_cur_price": "",
"trial_type": "",
"item_purchased_status": "",
"artist_id": "0",
"artist": "南征北战",
"album_id": "0",
"album": "生来倔强"
}
}
}
换一首歌曲
{
"domain":"general_command",
"intent":"change",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | change |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象和data对象;
response.data中包含PlayerItemInfo对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,南征北战,生来倔强",
"ssml": ""
},
"directives": [
{
"type": "AudioPlay.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"token": "",
"offsetInMilliseconds": 0
},
"metaData": {
"title": "生来倔强",
"id": "246/003LtC4H15LRSE.mp3",
"albumTitle": "生来倔强",
"albumId": 0,
"artist": "南征北战",
"art": {
"small": "",
"middle": "",
"large": ""
}
}
}
}
],
"data": {
"playerItemInfo": {
"hot": 0,
"artStyle": "",
"useDealPlayerItem": false,
"type": 1,
"source": 11,
"id": "246/003LtC4H15LRSE.mp3",
"title": "生来倔强",
"artistId": "0",
"artist": "南征北战",
"albumId": 0,
"albumIncludeTracksCount": 0,
"album": "生来倔强",
"categoryId": "",
"category": "",
"breakSecond": 0,
"doubanId": 0,
"picSmall": "",
"picMiddle": "",
"picLarge": "",
"isPaid": false,
"isCouldPlay": 0,
"duration": 0,
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"sqUrl": "",
"_urlHook": false,
"_urlHookPlayed": false,
"subSource": 0,
"audioVoice": "0.271641",
"sqAudioVoice": "",
"ABtest": 0,
"resType": 204,
"triggerType": 1
},
"next": true,
"demandType": 1,
"count": 1,
"offset": 1,
"bi_report": {
"trigger_type": "",
"item_type": "101",
"item_source": "orion",
"item_id": "246/003LtC4H15LRSE.mp3",
"item_title": "生来倔强",
"item_paid_type": "0",
"item_orig_price": "0",
"item_cur_price": "",
"trial_type": "",
"item_purchased_status": "",
"artist_id": "0",
"artist": "南征北战",
"album_id": "0",
"album": "生来倔强"
}
}
}
上一首歌曲
{
"domain":"general_command",
"intent":"previous",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | previous |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象和data对象;
response.data中包含PlayerItemInfo对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,南征北战,生来倔强",
"ssml": ""
},
"directives": [
{
"type": "AudioPlay.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"token": "",
"offsetInMilliseconds": 0
},
"metaData": {
"title": "生来倔强",
"id": "246/003LtC4H15LRSE.mp3",
"albumTitle": "生来倔强",
"albumId": 0,
"artist": "南征北战",
"art": {
"small": "",
"middle": "",
"large": ""
}
}
}
}
],
"data": {
"playerItemInfo": {
"hot": 0,
"artStyle": "",
"useDealPlayerItem": false,
"type": 1,
"source": 11,
"id": "246/003LtC4H15LRSE.mp3",
"title": "生来倔强",
"artistId": "0",
"artist": "南征北战",
"albumId": 0,
"albumIncludeTracksCount": 0,
"album": "生来倔强",
"categoryId": "",
"category": "",
"breakSecond": 0,
"doubanId": 0,
"picSmall": "",
"picMiddle": "",
"picLarge": "",
"isPaid": false,
"isCouldPlay": 0,
"duration": 0,
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"sqUrl": "",
"_urlHook": false,
"_urlHookPlayed": false,
"subSource": 0,
"audioVoice": "0.271641",
"sqAudioVoice": "",
"ABtest": 0,
"resType": 204,
"triggerType": 1
},
"next": true,
"demandType": 1,
"count": 1,
"offset": 1,
"bi_report": {
"trigger_type": "",
"item_type": "101",
"item_source": "orion",
"item_id": "246/003LtC4H15LRSE.mp3",
"item_title": "生来倔强",
"item_paid_type": "0",
"item_orig_price": "0",
"item_cur_price": "",
"trial_type": "",
"item_purchased_status": "",
"artist_id": "0",
"artist": "南征北战",
"album_id": "0",
"album": "生来倔强"
}
}
}
静音
{
"domain":"general_command",
"intent":"mute",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | mute |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "已静音",
"ssml": ""
},
"directives": [
{
"type": "Speaker.SetMute",
"payload": {
"mute": true
}
}
]
}
取消静音
{
"domain":"general_command",
"intent":"unmute",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizUser |
intent | String | 是 | speakerInfo |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"directives": [
{
"type": "Speaker.SetMute",
"payload": {
"mute": false
}
}
]
}
暂停
{
"domain":"general_command",
"intent":"pause",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | pause |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "已暂停",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "System.Pause"
}
]
}
停止
{
"domain":"general_command",
"intent":"stop",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | stop |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "已停止",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "System.Stop"
}
]
}
退出
{
"domain":"general_command",
"intent":"quit",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | quit |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "已停止",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "System.Stop"
}
]
}
确认
{
"domain":"general_command",
"intent":"confirm",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | confirm |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "无效操作",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "System.Confirm"
}
]
}
取消
{
"domain":"general_command",
"intent":"cancel",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | cancel |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"directives": [
{
"type": "System.Confirm"
}
]
}
关机
{
"domain":"general_command",
"intent":"power_off",
"slots":{"duration_second":[],"duration_minute":[],"duration_hour":[]}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | mute |
slots | JsonObject | 是 | |
slots.duration_second | JsonArray | 否 | 请求参数存在的时候,定时关机,间隔为秒 |
slots.duration_minute | JsonArray | 否 | 请求参数存在的时候,定时关机,间隔为分钟 |
slots.duration_hour | JsonArray | 否 | 请求参数存在的时候,定时关机,间隔为小时 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象、Directives对象和data对象;
其中data对象包含以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_power_off_now | boolean | 是否是现在关机 |
is_add_new | boolean | |
list | JsonArray |
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,5分钟后我将进入休眠。",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "System.PowerOff"
}
],
"data": {
"is_power_off_now": false,
"is_add_new": true,
"list": [
{
"time_points": {
"type": "points",
"loop_type": "",
"loop_common": [],
"loop_points": [
{
"year": 2019,
"month": 6,
"day": 19,
"hour": 16,
"minute": 50,
"second": 7
}
],
"legal_type": ""
}
}
]
}
}
调高音量
{
"domain":"general_command",
"intent":"up_command",
"slots":{"command_param":[{"slot_type":"123","text":"123","value":"123"}],"command_value":[{"slot_type":"123","text":"123","value":"123"}]}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | up_command |
slots | JsonObject | 是 | |
slots.command_param | JsonArray | 是 | |
slots.command_param.slot_type | |||
slots.command_param.text | |||
slots.command_param.value | String | 是 | |
slots.command_value.slot_type | |||
slots.command_value.text | |||
slots.command_value.value | String | 是 | 设置音量的值 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
value | JsonArray | |
feedback_hint | JsonObject |
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "Speaker.AdjustVolume",
"payload": {
"operate": "up",
"value": 6
}
}
],
"data": {
"value": [
"6"
],
"feedback_hint": {
"type": 2,
"action": 2
}
}
}
调低音量
{
"domain":"general_command",
"intent":"down_command",
"slots":{"command_param":[{"slot_type":"123","text":"123","value":"123"}],"command_value":[{"slot_type":"123","text":"123","value":"123"}]}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | down_command |
slots | JsonObject | 是 | |
slots.command_param | JsonArray | 是 | |
slots.command_param.slot_type | |||
slots.command_param.text | |||
slots.command_param.value | String | 是 | |
slots.command_value.slot_type | |||
slots.command_value.text | |||
slots.command_value.value | String | 是 | 设置音量的值 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
value | JsonArray | |
feedback_hint | JsonObject |
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "Speaker.AdjustVolume",
"payload": {
"operate": "up",
"value": 6
}
}
],
"data": {
"value": [
"6"
],
"feedback_hint": {
"type": 2,
"action": 2
}
}
}
音量调至最大
{
"domain":"general_command",
"intent":"max_command",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | max_command |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"directives": [
{
"type": "Speaker.AdjustVolume",
"payload": {
"operate": "max"
}
}
],
"shouldEndSession": true
}
音量调至最小
{
"domain":"general_command",
"intent":"min_command",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | min_command |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"directives": [
{
"type": "Speaker.AdjustVolume",
"payload": {
"operate": "min"
}
}
],
"shouldEndSession": true
}
设置音量的值
{
"domain":"general_command",
"intent":"set_command",
"slots":{"command_param":[{"slot_type":"123","text":"123","value":"123"}],"command_value":[{"slot_type":"123","text":"123","value":"123"}]}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | set_command |
slots | JsonObject | 是 | |
slots.command_param | JsonArray | 是 | |
slots.command_param.slot_type | |||
slots.command_param.text | |||
slots.command_param.value | String | 是 | |
slots.command_value.slot_type | |||
slots.command_value.text | |||
slots.command_value.value | String | 是 | 设置音量的值 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
{
"directives": [
{
"type": "Speaker.SetVolume",
"payload": {
"volume": "6"
}
}
],
"data": {
"value": [
"6"
]
}
}
查询当前音量
{
"domain":"general_command",
"intent":"ask_volume",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | ask_volume |
slots | JsonObject | 是 |
返回值:
无返回数据
打开蓝牙
{
"domain":"general_command",
"intent":"open_command",
"slots":{
"command_param":[
{
"slot_type":"123",
"text":"123",
"value":"123"
}
]
}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | open_command |
slots | JsonObject | 是 | |
slots.command_param | JsonArray | 是 | |
slots.command_param.slot_type | |||
slots.command_param.text | |||
slots.command_param.value | String | 是 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"directives": [
{
"type": "Bluetooth.Power",
"payload": {
"operate": "open"
}
}
]
}
关闭蓝牙
{
"domain":"general_command",
"intent":"close_command",
"slots":{"command_param":[{"slot_type":"123","text":"123","value":"123"}]}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | close_command |
slots | JsonObject | 是 | |
slots.command_param | JsonArray | 是 | |
slots.command_param.slot_type | |||
slots.command_param.text | |||
slots.command_param.value | String | 是 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"directives": [
{
"type": "Bluetooth.Power",
"payload": {
"operate": "close"
}
}
]
}
切换蓝牙
{
"domain":"general_command",
"intent":"switch_command",
"slots":{
"command_param":[
{
"slot_type":"123",
"text":"123",
"value":"123"
}
]
}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | switch_command |
slots | JsonObject | 是 | |
slots.command_param | JsonArray | 是 | |
slots.command_param.slot_type | |||
slots.command_param.text | |||
slots.command_param.value | String | 是 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"directives": [
{
"type": "Bluetooth.Connect",
"payload": {
"operate": "switch"
}
}
]
}
我要睡觉
{
"domain":"general_command",
"intent":"go_to_sleep",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | go_to_sleep |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_power_off_now | boolean | |
is_add_new | boolean | |
list | JsonArray |
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,我将进入休眠。",
"ssml": ""
},
"directives": [
{
"type": "System.PowerOff"
}
],
"data": {
"is_power_off_now": true,
"is_add_new": false,
"list": []
},
"shouldEndSession": true
}
我要离开
{
"domain":"general_command",
"intent":"leave_out",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | leave_out |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
is_power_off_now | boolean | |
is_add_new | boolean |
{
"outputSpeech": {
"type": "PlainText",
"text": "主人再见,路上小心,注意安全,我等你回来哦。",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "System.PowerOff"
}
],
"data": {
"is_power_off_now": true,
"is_add_new": false
},
"shouldEndSession": true
}
自动下一首歌曲
{
"domain":"general_command",
"intent":"auto_next",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | down_command |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech和data对象;
其中data包含PlayerItemInfo对象
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"directives": [
{
"type": "AudioPlay.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"token": "",
"offsetInMilliseconds": 0
},
"metaData": {
"title": "生来倔强",
"id": "246/003LtC4H15LRSE.mp3",
"albumTitle": "生来倔强",
"albumId": 0,
"artist": "南征北战",
"art": {
"small": "",
"middle": "",
"large": ""
}
}
}
}
],
"data": {
"playerItemInfo": {
"hot": 0,
"artStyle": "",
"useDealPlayerItem": false,
"type": 1,
"source": 11,
"id": "246/003LtC4H15LRSE.mp3",
"title": "生来倔强",
"artistId": "0",
"artist": "南征北战",
"albumId": 0,
"albumIncludeTracksCount": 0,
"album": "生来倔强",
"categoryId": "",
"category": "",
"breakSecond": 0,
"doubanId": 0,
"picSmall": "",
"picMiddle": "",
"picLarge": "",
"isPaid": false,
"isCouldPlay": 0,
"duration": 0,
"url": "http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"sqUrl": "",
"_urlHook": false,
"_urlHookPlayed": false,
"subSource": 0,
"audioVoice": "0.271641",
"sqAudioVoice": "",
"ABtest": 0,
"resType": 204,
"triggerType": 1
},
"next": true,
"demandType": 1,
"count": 1,
"offset": 1,
"bi_report": {
"trigger_type": "",
"item_type": "101",
"item_source": "orion",
"item_id": "246/003LtC4H15LRSE.mp3",
"item_title": "生来倔强",
"item_paid_type": "0",
"item_orig_price": "0",
"item_cur_price": "",
"trial_type": "",
"item_purchased_status": "",
"artist_id": "0",
"artist": "南征北战",
"album_id": "0",
"album": "生来倔强"
}
}
}
FM
播放时间上报
{
"domain":"fm",
"intent":"report_break_second",
"slots":{"trackId":"123","playedTime":123,"albumId":"123","totalTime":123}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | down_command |
slots | JsonObject | 是 | |
slots.trackId | String | 是 | 音频id |
slots.playedTime | Integer | 是 | 当前播放的秒数 |
slots.albumId | String | 是 | 专辑id |
slots.totalTime | Integer | 是 | 总秒数 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"card": {},
"directives": [],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
闹钟
调低音量
{
"domain":"alarm",
"intent":"set_alarm",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | alarm |
intent | String | 是 | set_alarm |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,几点呢?",
"ssml": ""
},
"directives": [
{
"type": "Dialog.ElicitSlot",
"slotToElicit": [
"time"
]
}
],
"shouldEndSession": false
}
查看闹钟
{
"domain":"alarm",
"intent":"view_alarm",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | alarm |
intent | String | 是 | view_alarm |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含Directives对象、和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
status | Integer | |
week | JsonArray | |
text | String | |
event | String | |
alarm_id | Integer | |
legal_type | String | |
time | JsonObject | |
time.second | Integer | |
time.hour | Integer | |
time.minute | Integer | |
date | JsonObject | |
date.year | Integer | |
date.day | Integer | |
date.month | Integer | |
type | Integer | |
sub_type | Integer |
{
"outputSpeech": {
"type": "PlainText",
"text": "查询到您有一个明天上午5点的闹钟。",
"ssml": ""
},
"data": [
{
"week": [],
"status": 0,
"text": "2019年6月11日",
"event": "",
"alarm_id": 8192275,
"legal_type": "",
"time": {
"second": 0,
"hour": 5,
"minute": 0
},
"date": {
"year": 2019,
"day": 11,
"month": 6
},
"type": 1,
"sub_type": 0
}
],
"shouldEndSession": true
}
删除闹钟/取消闹钟
删除所有的闹钟
{
"domain":"alarm",
"intent":"delete_alarm",
"slots":{
"is_all":[
{
"slot_type":"NORMAL",
"text":"all",
"value":"all"
}
]
}
}
删除某一个时间的闹钟
{
"slots":{
"time":[
{
"slot_type":"TIME",
"text":"明天下午",
"value":{
"sub_type":0,
"end":{
"date":{
"month":6,
"year":2019,
"day":25
},
"day_period":9,
"time":{
"hour":17,
"minute":59,
"second":59
}
},
"type":2,
"begin":{
"date":{
"month":6,
"year":2019,
"day":25
},
"day_period":9,
"time":{
"hour":12,
"minute":0,
"second":0
}
}
}
}
]
}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | general_command |
intent | String | 是 | down_command |
slots | JsonObject | 是 | 槽位参数;slots为空时,进入多轮;slot有time参数数据时,删除具体时间的闹钟;slot有is_all参数数据时,删除所有闹钟; |
slots.time | JsonArray | 是 | 删除具体时间的闹钟时必须; |
slots.time.slot_type | String | 是 | 时间槽位;删除某一个时间点的闹钟 |
slots.time.text | String | 是 | |
slots.time.value | JsonObject | 是 | |
slots.time.value.sub_type | Integer | 是 | 0 |
slots.time.value.type | Integer | 是 | 1 |
slots.time.value.begin | JsonObject | 是 | 闹钟具体时间的对象信息 |
slots.time.value.begin.date | JsonObject | 是 | 日期对象信息 |
slots.time.value.begin.date.mouth | Integer | 是 | 月 |
slots.time.value.begin.date.year | Integer | 是 | 年 |
slots.time.value.begin.date.day | Integer | 是 | 日 |
slots.time.value.begin.time | JsonObject | 是 | 时间对象信息 |
slots.time.value.begin.time.hour | Integer | 是 | 时 |
slots.time.value.begin.time.minute | Integer | 是 | 分 |
slots.time.value.begin.time.second | Integer | 是 | 秒 |
slots.time.value.begin.day_period | Integer | 是 | 时间所属区间 |
slots.is_all | JsonArray | 是 | 删除所有闹钟时必须; |
slots.is_all.slot_type | JsonObject | 是 | 时间槽位;删除某一个时间点的闹钟 |
slots.is_all.text | String | 是 | |
slots.is_all.value | JsonObject | 是 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
ids | JsonArray | 返回闹钟的ids数组 |
{
"outputSpeech": {
"type": "PlainText",
"text": "查询到您有一个今天晚上8点的闹钟。已经为您删除下午8点的闹钟。",
"ssml": ""
},
"data": {
"ids": [
8192410
]
},
"shouldEndSession": true
}
提醒
设置提醒
多轮
{
"intent": "reminder",
"domain": "set_reminder",
"slots": {}
}
time和slots参数都为必须,缺任一都会进入多轮
{
"intent": "reminder",
"domain": "set_reminder",
"slots": {
"time": [
{
"dict_name": "SEMANTIC_TAG_CHUNK_TIME",
"slot_type": "NORMAL",
"text": "每天5点",
"value": {
"sub_type": 3,
"loop_value": [
{
"time": {
"hour": 5,
"minute": 0,
"second": 0
}
}
],
"type": 3
}
}
],
"event": [
{
"slot_type": "NORMAL",
"text": "订饭",
"value": "订饭"
}
]
}
}
固定时间
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | reminder |
intent | String | 是 | set_reminder |
slots | JsonObject | 是 | 槽位参数;为空时,进入多轮; |
slots.event | JsonArray | 是 | 事件 |
slots.event.slot_type | String | 是 | |
slots.event.text | String | 是 | |
slots.event.value | String | 是 | |
slots.time | JsonArray | 是 | |
slots.time.slot_type | String | 是 | 时间槽位 |
slots.time.text | String | 是 | 时间文本信息 |
slots.time.value | JsonObject | 是 | |
slots.time.value.sub_type | Integer | 是 | 2 |
slots.time.value.type | Integer | 是 | 1 |
slots.time.value.begin | JsonObject | 是 | 提醒具体时间的对象信息 |
slots.time.value.begin.date | JsonObject | 是 | 日期对象信息 |
slots.time.value.begin.date.mouth | Integer | 是 | 月 |
slots.time.value.begin.date.year | Integer | 是 | 年 |
slots.time.value.begin.date.day | Integer | 是 | 日 |
slots.time.value.begin.time | JsonObject | 是 | 时间对象信息 |
slots.time.value.begin.time.hour | Integer | 是 | 时 |
slots.time.value.begin.time.minute | Integer | 是 | 分 |
slots.time.value.begin.time.second | Integer | 是 | 秒 |
slots.command_value.value | String | 是 | 设置音量的值 |
slots.command_value.value | String | 是 | 设置音量的值 |
slots.command_value.value | String | 是 | 设置音量的值 |
slots.command_value.value | String | 是 | 设置音量的值 |
slots.command_value.value | String | 是 | 设置音量的值 |
每天循环时间
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | reminder |
intent | String | 是 | set_reminder |
slots | JsonObject | 是 | 槽位参数;为空时,进入多轮; |
slots.event | JsonArray | 是 | 事件 |
slots.event.slot_type | String | 是 | |
slots.event.text | String | 是 | |
slots.event.value | String | 是 | |
slots.time | JsonArray | 是 | |
slots.time.slot_type | String | 是 | 时间槽位 |
slots.time.text | String | 是 | 时间文本信息 |
slots.time.value | JsonObject | 是 | |
slots.time.value.sub_type | Integer | 是 | 2 |
slots.time.value.type | Integer | 是 | 1 |
slots.time.0.value.loop_value | JsonObject | 是 | 提醒具体时间的对象信息 |
slots.time.0.value.loop_value.time | JsonObject | 是 | 日期对象信息 |
slots.time.0.value.loop_value.time.hour | Integer | 是 | 时 |
slots.time.0.value.loop_value.time.minute | Integer | 是 | 分 |
slots.time.0.value.loop_value.time.second | Integer | 是 | 秒 |
slots.time.0.value.loop_value.day_period | Integer | 是 | 时间所属区间 |
每周循环
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | reminder |
intent | String | 是 | set_reminder |
slots | JsonObject | 是 | 槽位参数;为空时,进入多轮; |
slots.event | JsonArray | 是 | 事件 |
slots.event.slot_type | String | 是 | |
slots.event.text | String | 是 | |
slots.event.value | String | 是 | |
slots.time | JsonArray | 是 | |
slots.time.slot_type | String | 是 | 时间槽位 |
slots.time.text | String | 是 | 时间文本信息 |
slots.time.value | JsonObject | 是 | |
slots.time.value.sub_type | Integer | 是 | 2 |
slots.time.value.type | Integer | 是 | 1 |
slots.time.0.value.loop_value | JsonObject | 是 | 提醒具体时间的对象信息 |
slots.time.0.value.loop_value.time | JsonObject | 是 | 日期对象信息 |
slots.time.0.value.loop_value.time.hour | Integer | 是 | 时 |
slots.time.0.value.loop_value.time.minute | Integer | 是 | 分 |
slots.time.0.value.loop_value.time.second | Integer | 是 | 秒 |
slots.time.0.value.loop_value.day_period | Integer | 是 | 时间所属区间 |
slots.time.0.value.loop_value.week | Integer | 是 | 周循环具体 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech和data对象;
其中data包含如下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
week | JsonArray | |
status | Integer | |
text | String | 提醒的具体日期 |
event | String | 时间的文本 |
time | JsonObject | 时间对象 |
time.second | Integer | 秒 |
time.hour | Integer | 时 |
time.minute | Integer | 分 |
date | JsonObject | 日期对象 |
date.year | Integer | 年 |
date.day | Integer | 日 |
date.month | Integer | 月 |
legal_type | String | 是否按照法定节假日 |
type | Integer | 提醒的type参数值 |
id | JsonArray | id值数组 |
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,我会在今天晚上8点提醒您开会。",
"ssml": ""
},
"data": {
"week": [],
"status": 0,
"sub_type": 0,
"text": "2019年6月12日",
"event": "开会",
"legal_type": "",
"time": {
"second": 0,
"hour": 20,
"minute": 0
},
"date": {
"year": 2019,
"day": 12,
"month": 6
},
"type": 1,
"id": [
8192424
]
},
"nextScene": null,
"shouldEndSession": true
}
查看提醒
{
"domain":"reminder",
"intent":"view_reminder",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | reminder |
intent | String | 是 | view_reminder |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象和data对象;
其中data对象有以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
week | JsonArray | |
status | Integer | |
text | String | 提醒的具体日期 |
sub_type | Integer | 提醒sub_type参数值 |
event | String | 事件 |
time | JsonObject | 时间对象 |
time.second | Integer | 秒 |
time.hour | Integer | 时 |
time.minute | Integer | 分 |
date | JsonObject | 日期对象 |
date.year | Integer | 年 |
date.day | Integer | 日 |
date.month | Integer | 月 |
legal_type | String | 是否按照法定节假日 |
type | Integer | 提醒的type参数值 |
{
"outputSpeech": {
"type": "PlainText",
"text": "查询到两个提醒:今天晚上8点开会;今天晚上8点开会。",
"ssml": ""
},
"data": [
{
"week": [],
"status": 0,
"text": "2019年6月12日",
"event": "开会",
"alarm_id": 8192402,
"legal_type": "",
"time": {
"second": 0,
"hour": 20,
"minute": 0
},
"date": {
"year": 2019,
"day": 12,
"month": 6
},
"type": 1,
"sub_type": 0
},
{
"week": [],
"status": 0,
"text": "2019年6月12日",
"event": "开会",
"alarm_id": 8192424,
"legal_type": "",
"time": {
"second": 0,
"hour": 20,
"minute": 0
},
"date": {
"year": 2019,
"day": 12,
"month": 6
},
"type": 1,
"sub_type": 0
}
],
"nextScene": null,
"shouldEndSession": true
}
删除提醒/取消提醒
{
"domain":"reminder",
"intent":"delete_reminder/cancel_reminder",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | reminder |
intent | String | 是 | delete_reminder/cancel_reminder |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象和data对象;
其中data对象有以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
ids | JsonArray | 返回提醒的ids数组 |
{
"outputSpeech": {
"type": "PlainText",
"text": "已经为您删除所有提醒。",
"ssml": ""
},
"data": {
"ids": [
8192429,
8192430,
8192431
]
},
"shouldEndSession": true
}
找手机
寻找手机
{
"domain":"find_my_phone",
"intent":"find_my_phone",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | find_my_phone |
intent | String | 是 | find_my_phone |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech":{
"type":"PlainText",
"text":"好的,开始拨打您的手机",
"ssml":""
},
"card":{
"text":"好的,开始拨打您的手机",
"popup":null,
"ui":[
{
"type":"TextButton",
"bg":{
"image":null,
"color":"#F5F6F7",
"virtual":false
},
"attr":{
"title":"当前手机号码:15232896286",
"button":{
"text":"修改",
"link":"ovs://findmyphone/setphone"
}
},
"custom":null,
"skillIcon":{
"image":"http://dl.update.ainirobot.com/speaker/pic/a0af4c5c04ae8c4f1d0395a7f10b60d0.png",
"name":"找我的手机"
}
}
],
"linkAccount":null,
"order":null,
"ad":null
},
"data":{
"xiaoYaCompatible":{
"code":"200",
"slots":{
"cellphone":"15232896286",
"verifycode":"7277"
},
"reportQueryHistory":"a:1:{i:0;O:29:"data\history\HistoryFindPhone":6:{s:19:"find_my_phone_title";s:15:"找我的手机";s:18:"find_my_phone_text";s:32:""小雅小雅,找我的手机"";s:21:"find_my_phone_pic_url";s:7:"pic_url";s:25:"find_my_phone_button_text";s:6:"设置";s:20:"find_my_phone_status";i:1;s:6:"mobile";s:11:"15232896286";}}"
}
},
"shouldEndSession":true
}
获取手机号
{
"domain":"BizApp",
"intent":"getCellPhone",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | getCellPhone |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech":{
"type":"PlainText",
"text":"",
"ssml":""
},
"card":{
},
"directives":[
],
"data":{
"cellphone":"15xxxxxxxxx"
},
"shouldEndSession":true
}
设置手机号
{
"domain":"BizApp",
"intent":"setCellphone",
"slots":{"cellphone":"123"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | setCellphone |
slots | JsonObject | 是 | |
slots.cellphone | String | 是 | 手机号码 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech":{
"type":"PlainText",
"text":"",
"ssml":""
},
"data":{
"status":"success"
},
"shouldEndSession":true
}
我的快递
快递绑定手机号查询
{
"domain":"BizApp",
"intent":"getMailExpressPhone",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | getMailExpressPhone |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
其中data中包含以下字段:
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
cellphone | String | 返回的手机号码 |
发送验证码
{
"domain":"BizApp",
"intent":"sendVerifyCode",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | xima |
intent | String | 是 | upload_play_records |
slots | JsonObject | 否 |
返回值:
无
绑定手机号
{
"domain":"BizApp",
"intent":"setMailExpressPhone",
"slots":{"mobile":"123","verifycode":"123"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | setMailExpressPhone |
slots | JsonObject | 是 | |
slots.mobile | String | 是 | 手机号码 |
slots.verifycode | String | 是 | 验证码参数 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
其中data中包含以下字段:
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
status | String | 成功返回“success”;失败返回“faild” |
查快递
{
"domain":"express",
"intent":"view_express",
"slots":{"cellphone":"123"}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | express |
intent | String | 是 | view_express |
slots | JsonObject | 是 | |
slots.cellphone | String | 是 | 手机号码 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
若请求出错,http状态码为500,返回ErrorResponse对象
数学运算
数学计算
{
"domain":"calculator",
"intent":"calculate",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | calculator |
intent | String | 是 | calculate |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{ "outputSpeech": {
"type": "PlainText",
"text": "这个难不倒我,1加二等于三",
"ssml": ""
},
"shouldEndSession": true}
整点报时
打开或者关闭整点报时
{
"domain":"setting",
"intent":"open_tell_time/close_tell_time",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | setting |
intent | String | 是 | open_tell_time/close_tell_time |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "已为您打开上午七点到晚上十点的整点报时,你可以使用小雅APP调整播报时间。",
"ssml": ""
},
"data": {
"xiaoYaCompatible": {
"code": "200",
"slots": []
}
},
"shouldEndSession": true
}
获取整点列表
{
"domain":"BizClock",
"intent":"listForSpeaker",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizClock |
intent | String | 是 | listForSpeaker |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包含OutputSpeech对象和data对象;
其中data对象有以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
list | JsonArray | 列表数组 |
list.pre_clock | String | 整点报时资源准备时间 |
list.play_clock | String | 整点报时执行时间 |
list.text | String | 音箱端播报的tts |
list.scene_intent | JsonArray | 整点报时以后串起的内容 |
{
"outputSpeech": {
"type": "PlainText",
"text": "",
"ssml": ""
},
"data": {
"list": [
{
"pre_clock": "06:58:12",
"play_clock": "07:00:00",
"text": "小雅为你整点报时,现在是北京时间早上七点",
"scene_intent": []
},
{
"pre_clock": "07:58:43",
"play_clock": "08:00:00",
"text": "小雅为你整点报时,现在是北京时间早上八点",
"scene_intent": []
},
{
"pre_clock": "08:57:55",
"play_clock": "09:00:00",
"text": "小雅为你整点报时,现在是北京时间早上九点",
"scene_intent": []
},
{
"pre_clock": "09:59:12",
"play_clock": "10:00:00",
"text": "小雅为你整点报时,现在是北京时间早上十点",
"scene_intent": []
},
{
"pre_clock": "10:59:05",
"play_clock": "11:00:00",
"text": "小雅为你整点报时,现在是北京时间早上十一点",
"scene_intent": []
},
{
"pre_clock": "11:57:53",
"play_clock": "12:00:00",
"text": "小雅为你整点报时,现在是北京时间中午十二点",
"scene_intent": []
},
{
"pre_clock": "12:58:31",
"play_clock": "13:00:00",
"text": "小雅为你整点报时,现在是北京时间下午一点",
"scene_intent": []
},
{
"pre_clock": "13:55:52",
"play_clock": "14:00:00",
"text": "小雅为你整点报时,现在是北京时间下午两点",
"scene_intent": []
},
{
"pre_clock": "14:56:31",
"play_clock": "15:00:00",
"text": "小雅为你整点报时,现在是北京时间下午三点",
"scene_intent": []
},
{
"pre_clock": "15:55:15",
"play_clock": "16:00:00",
"text": "小雅为你整点报时,现在是北京时间下午四点",
"scene_intent": []
},
{
"pre_clock": "16:58:09",
"play_clock": "17:00:00",
"text": "小雅为你整点报时,现在是北京时间下午五点",
"scene_intent": []
},
{
"pre_clock": "17:56:09",
"play_clock": "18:00:00",
"text": "小雅为你整点报时,现在是北京时间晚上六点",
"scene_intent": []
},
{
"pre_clock": "18:56:40",
"play_clock": "19:00:00",
"text": "晚上七点,下面为你播报三分钟新闻",
"scene_intent": []
},
{
"pre_clock": "19:55:49",
"play_clock": "20:00:00",
"text": "小雅为你整点报时,现在是北京时间晚上八点",
"scene_intent": []
},
{
"pre_clock": "20:56:51",
"play_clock": "21:00:00",
"text": "小雅为你整点报时,现在是北京时间晚上九点",
"scene_intent": []
},
{
"pre_clock": "21:59:38",
"play_clock": "22:00:00",
"text": "小雅为你整点报时,现在是北京时间晚上十点",
"scene_intent": []
}
]
},
"shouldEndSession": true
}
计时器
设置计时器
hour倒计时
{
"slots":{
"duration_hour":[
{
"slot_type":"NORMAL",
"text":"2",
"value":"2"
}
]
}
}
minute倒计时
{
"slots":{
"duration_minute":[
{
"slot_type":"NORMAL",
"text":"2",
"value":"2"
}
]
}
}
second倒计时
{
"slots":{
"duration_second":[
{
"slot_type":"NORMAL",
"text":"2",
"value":"2"
}
]
}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizApp |
intent | String | 是 | getMailExpressPhone |
slots | JsonObject | 是 | |
slots.duration_hour | JsonArray | 是 | 倒计时为小时时,为必须 |
slots.duration_hour.slot_type | String | ||
slots.duration_hour.text | String | ||
slots.duration_hour.value | String | ||
slots.duration_minute | JsonArray | 是 | 倒计时为分钟时,为必须 |
slots.duration_minute.slot_type | String | ||
slots.duration_minute.text | String | ||
slots.duration_minute.value | String | ||
slots.duration_second | JsonArray | 是 | 倒计时为秒的时候为必须 |
slots.duration_second.slot_type | String | ||
slots.duration_second.text | String | ||
slots.duration_second.value | String |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
其中data对象包含以下字段
若请求出错,http状态码为500,返回ErrorResponse对象
字段 | 类型 | 说明 |
---|---|---|
timer_id | Integer | 设置的计时id |
start_ts | Integer | 倒计时开始时间 |
last_seconds | Integer | 倒计时的时间 |
ten_text | String | 倒计时还有10s的tts文本 |
{
"outputSpeech": {
"type": "PlainText",
"text": "好的,5分倒计时开始。",
"ssml": ""
},
"data": {
"timer_id": 539,
"start_ts": 1560857003,
"last_seconds": 300,
"ten_text": "您的5分倒计时,还有10秒。"
},
"shouldEndSession": true
}
取消计时
{
"domain":"timer",
"intent":"cancel_timer",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | express |
intent | String | 是 | view_express |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech和data对象;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "当前没有倒计时,如果想设置倒计时,请直接对我说,倒计时30秒。",
"ssml": ""
},
"data": {
"xiaoYaCompatible": {
"code": "200",
"slots": []
}
},
"shouldEndSession": true
}
时钟
查询时间
{
"domain":"calendar",
"intent":"search_calendar",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | calendar |
intent | String | 是 | search_calendar |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "今天是农历己亥年五月十七",
"ssml": ""
},
"shouldEndSession": true
}
获取音箱状态
{
"domain":"BizSpeaker",
"intent":"getStatus",
"slots":{}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | BizSpeaker |
intent | String | 是 | getStatus |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"outputSpeech": {
"type": "PlainText",
"text": "今天是农历己亥年五月十七",
"ssml": ""
},
"shouldEndSession": true
}
同步通讯录
添加通讯录
{
"slots":{
"action":"add",
"data":[
{"nick_name":"小网"},
{"nick_name":"小王","sort":1},
{"nick_name":"小红"},
{"nick_name":"小蓝"}
]
},
"domain":"call",
"intent":"sync_call_contacts"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | sync_call_contacts |
slots | JsonObject | 是 | |
slots.action | String | 是 | 手机号码 |
slots.data | JsonArray | 是 | 通讯录信息 |
slots.data.nick_name | String | 是 | 联系人昵称 |
slots.data.sort | Integer | 否 | 第一联系人,值大于0 |
更新通讯录
{
"slots":{
"action":"update",
"data":[
{"origin_name":"小马","nick_name":"小美"},
{"origin_name":"小王","nick_name":"小李"}
]
}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | sync_call_contacts |
slots | JsonObject | 是 | |
slots.action | String | 是 | 手机号码 |
slots.data | JsonArray | 是 | 通讯录信息 |
slots.data.origin_name | String | 是 | 原联系人昵称 |
slots.data.nick_name | String | 否 | 新昵称(nick_name与sort必选一个) |
slots.data.sort | Integer | 否 | 联系人排序(nick_name与sort必选一个) |
删除联系人
{
"slots":{
"action":"del",
"data":[
{"nick_name":"小美"},
{"nick_name":"小李"},
{"nick_name":"小红"}
]
}
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | sync_call_contacts |
slots | JsonObject | 是 | |
slots.action | String | 是 | 手机号码 |
slots.data | JsonArray | 是 | 通讯录信息 |
slots.data.nick_name | String | 是 | 联系人昵称 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": null,
"text": null,
"ssml": null
},
"card": {},
"directives": [],
"data": {
"syncCnt": 4
},
"nextScene": null,
"shouldEndSession": true
}
}
昵称查找联系人
{
"slots":{
"nick_name":"小王"
},
"domain":"call",
"intent":"call_nickname"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | call_nickname |
slots | JsonObject | 是 | |
slots.nick_name | String | 是 | 联系人昵称 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "已拨号给小王",
"ssml": ""
},
"card": {},
"directives": [],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
}
打电话
{
"slots":{},
"domain":"call",
"intent":"call"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | call |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "打电话给小王",
"ssml": ""
},
"card": {},
"directives": [
{
"type": "Call.NickName"
}
],
"data": {
"contacts": "小王"
},
"nextScene": null,
"shouldEndSession": true
}
}
接通电话
{
"slots":{},
"domain":"call",
"intent":"answer"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | answer |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": null,
"text": null,
"ssml": null
},
"card": {},
"directives": [
{
"type": "Call.Answer"
}
],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
}
拒接电话
{
"slots":{},
"domain":"call",
"intent":"refuse"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | refuse |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": null,
"text": null,
"ssml": null
},
"card": {},
"directives": [
{
"type": "Call.Refuse"
}
],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
}
挂断电话
{
"slots":{},
"domain":"call",
"intent":"ring_off"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | ring_off |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": null,
"text": null,
"ssml": null
},
"card": {},
"directives": [
{
"type": "Call.RingOff"
}
],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
}
查看通讯录
{
"slots":{},
"domain":"call",
"intent":"contacts"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | contacts |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": null,
"text": null,
"ssml": null
},
"card": {},
"directives": [
{
"type": "Call.Contacts"
}
],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
}
查看通话记录
{
"slots":{},
"domain":"call",
"intent":"call_record"
}
QUERY参数 | 类型 | 必填 | 说明 |
---|---|---|---|
domain | String | 是 | call |
intent | String | 是 | call_record |
slots | JsonObject | 否 |
返回值:
请求成功时, http状态码为200,response中包OutputSpeech;
若请求出错,http状态码为500,返回ErrorResponse对象
{
"response": {
"outputSpeech": {
"type": null,
"text": null,
"ssml": null
},
"card": {},
"directives": [
{
"type": "Call.Record"
}
],
"data": {},
"nextScene": null,
"shouldEndSession": true
}
}
Model
Page
字段名 | 类型 | 描述 |
---|---|---|
items | array of objects | 根据请求不同,返回对应的的类型 |
limit | Integer | 一次响应返回的最大项数 |
offset | Integer | 从第几项开始返回数据 |
total | Integer | 可返回的数据的总项数 |
sort | String | 排序类型名 |
{
"total": 7,
"offset": 0,
"limit": 5,
"sort": null,
"items": []
}
xxmPage
字段名 | 类型 | 描述 |
---|---|---|
items | array of objects | 根据请求不同,返回对应的的类型 |
{
"items": []
}
Album
字段名 | 类型 | 描述 |
---|---|---|
id | long | 专辑id |
kind | String | 固定值”album“ |
title | String | 专辑标题 |
categoryId | Integer | 专辑所属点播分类的id |
tags | String | 专辑标签列表,包含运营标签和主播个人打的标签 |
shortIntro | String | 专辑缩略简介 |
updatedAt | long | 专辑更新时间,unix毫秒时间戳 |
createdAt | long | 专辑创建时间,unix毫秒时间戳 |
playCount | Integer | 专辑被播放总次数 |
favoriteCount | Integer | 专辑被点赞总次数 |
subscribeCount | Integer | 专辑被订阅总次数 |
shareCount | Integer | 专辑被分享总次数 |
subscribeCount | Integer | 专辑被订阅总次数 |
includeTrackCount | Integer | 专辑包含音频总数 |
isFinished | Integer | 专辑是否完结, 0-无此属性;1-未完结;2-完结 |
isPaid | boolean | 专辑是否是付费专辑 |
isSubscribe | boolean | 专辑是否被订阅,喜马拉雅授权后有意义 |
canDownload | boolean | 专辑能否被下载到用户终端本地,禁止下载/缓存到服务器端 |
isRecordsDesc | boolean | 是否被人工改为逆序排列 |
cover | Cover | 专辑封面图 |
description | String | 营销简介 |
uid | Integer | 作者uid |
lastUpdatedTrackId | Integer | 最新声音id |
{
"id": 72281,
"kind": "album",
"title": "secret garden",
"shortIntro": "xxx",
"categoryId": 2,
"tags": "",
"updatedAt": 1421769600000,
"createdAt": 1366992000000,
"playCount": 0,
"favoriteCount": 0,
"shareCount": 0,
"includeTrackCount": 16,
"isFinished": 0,
"canDownload": false,
"subscribeCount": 213,
"isPaid": false,
"isSubscribe": false,
"isRecordsDesc": false,
"cover": {
"small": {
"height": 86,
"width": 86,
"url": "http://fdfs.test.ximalaya.com/group1/m01/04/60/wkgd3lgufreafnlfaaie638b4tw963_mobile_small.jpg"
},
"middle": {
"height": 140,
"width": 140,
"url": "http://fdfs.test.ximalaya.com/group1/m01/04/60/wkgd3lgufreafnlfaaie638b4tw963_mobile_meduim.jpg"
},
"large": {
"height": 290,
"width": 290,
"url": "http://fdfs.test.ximalaya.com/group1/m01/04/60/wkgd3lgufreafnlfaaie638b4tw963_mobile_large.jpg"
}
},
"description": "每周两更",
"uid": 23131,
"lastUpdatedTrackId": 213133
}
xxmAlbum
字段名 | 类型 | 描述 |
---|---|---|
id | Long | 专辑id |
kind | String | 固定值”album“ |
title | String | 专辑标题 |
nickName | String | 主播昵称 |
shortIntro | String | 专辑缩略简介 |
updatedAt | Long | 专辑更新时间,unix毫秒时间戳 |
createdAt | Long | 专辑创建时间,unix毫秒时间戳 |
playCount | Integer | 专辑被播放总次数 |
trackCount | Integer | 专辑包含的声音数量 |
isPaid | Boolean | 专辑是否是付费专辑 |
isVipFree | Boolean | 专辑是否是vip免费 |
isRecordsDesc | Boolean | 是否被人工改为逆序排列 |
cover | Cover | 专辑封面图 |
uid | Integer | 作者uid |
{
"kind": "album",
"nickName": "米小圈",
"title": "米小圈上学记|一二三年级",
"cover": {
"small": {
"width": 86,
"url": "https://imagev2.xmcdn.com/group47/M04/44/9A/wKgKm1tziUXAfYepAAEzQNBx6tI692.png!op_type=3&columns=86&rows=86&magick=png",
"height": 86
},
"middle": {
"width": 140,
"url": "https://imagev2.xmcdn.com/group47/M04/44/9A/wKgKm1tziUXAfYepAAEzQNBx6tI692.png!op_type=3&columns=140&rows=140&magick=png",
"height": 140
},
"large": {
"width": 290,
"url": "https://imagev2.xmcdn.com/group47/M04/44/9A/wKgKm1tziUXAfYepAAEzQNBx6tI692.png!op_type=3&columns=290&rows=290&magick=png",
"height": 290
}
},
"createdAt": 1482299340000,
"isPaid": false,
"playCount": 77934176,
"uid": 68394601,
"trackCount": 258,
"shortInfo": "收听量破五亿的爆笑有趣广播剧,让孩子自此爱上上学",
"isRecordsDesc": false,
"isVipFree": false,
"id": 210038,
"updatedAt": 1588210922000
}
Track
字段名 | 类型 | 描述 |
---|---|---|
id | long | 音频id |
kind | String | 类型, 固定值“track” |
title | String | 标题 |
tags | String | 标签列表 |
createdAt | long | 创建时间 |
updatedAt | long | 更新时间 |
duration | Integer | 音频时长,单位毫秒 |
playCount | long | 音频被播放总次数 |
favoriteCount | long | 音频被点赞总次数 |
commentCount | long | 音频被评论总次数 |
source | Integer | 音频来源,1-用户原创,2-转采自其它专辑 |
cover | Image | 封面图片 |
canDownload | boolean | 能否被下载到用户终端本地,禁止下载/缓存到服务器端 |
album | Album | 音频所属专辑 |
playInfo | PlayInfo | 播放地址 |
{
"id": 358558,
"kind": "Track",
"title": "张学友-用余生去爱",
"tags": "",
"createdAt": 1506063721000,
"updatedAt": 1509075422000,
"duration": 254,
"playCount": 68,
"favoriteCount": 0,
"commentCount": 2,
"source": null,
"cover": null,
"canDownload": false,
"album": {
"id": 120382,
"kind": "album",
"title": "讲不出再见",
"intro": null,
"categoryId": 4,
"tags": "",
"updatedAt": 1509075422000,
"createdAt": 1506063715000,
"playCount": 233,
"favoriteCount": 0,
"shareCount": 0,
"includeTrackCount": 4,
"isFinished": 0,
"canDownload": false,
"cover": null
}
}
xxmTrack
字段名 | 类型 | 描述 |
---|---|---|
id | Long | 音频id |
albumId | Long | 音频对应的专辑id |
kind | String | 类型, 固定值“track” |
title | String | 标题 |
orderNum | Integer | 章节序号 |
uid | Long | 作者uid |
createdAt | Long | 创建时间 |
isPaid | Boolean | 是否付费 |
isFree | Boolean | 是否试听 |
duration | Integer | 音频时长,单位毫秒 |
playInfo | PlayInfo | 播放地址 |
album | xxmAlbum | 专辑信息 |
{
"id": 358558,
"albumId": ,
"kind": "Track",
"title": "张学友-用余生去爱",
"orderNum": 1,
"uid": "",
"createdAt": 1506063721000,
"duration": 254,
"isPaid": true,
"isFree": false,
"playInfo": {},
"album": {}
}
Cover
字段名 | 类型 | 描述 |
---|---|---|
small | Image | 分类封面小图 |
middle | Image | 分类封面小图 |
large | Image | 分类封面小图 |
{
"small": {
"height": 86,
"width": 86,
"url": "group12/M07/17/A4/wKgDW1VxNCrzTwWVAAAJnAUfyR8545.png"
},
"middle": {
"height": 140,
"width": 140,
"url": "group12/M07/17/A1/wKgDXFVxNB6wGFwmAAAJnAUfyR8949.png"
},
"large": {
"height": 290,
"width": 290,
"url": ""
}
}
Image
字段名 | 类型 | 描述 |
---|---|---|
height | Integer | 高度值 |
width | Integer | 宽度值 |
url | String | url地址 |
{
"height": 86,
"width": 86,
"url": "group12/M07/17/A4/wKgDW1VxNCrzTwWVAAAJnAUfyR8545.png"
}
PlayRecord
字段名 | 类型 | 描述 |
---|---|---|
contentType | Integer | 播放内容类型 1 点播 2 广播 |
albumId | long | 专辑id,content_type为1时有效 |
trackId | long | 音频id, content_type为1时有效 |
radioId | long | 广播电台id, content_type为2时有效 |
scheduleId | long | 广播电台时间表id, content_type为2时有效 |
playedSecs | Integer | 播放到多少毫秒或最后播放到的位置,相对于音频开始位置 |
startedAt | long | 播放开始时刻,毫秒时间戳 |
endedAt | long | 播放结束时刻,毫秒时间戳 |
{
"contentType" : 1,
"albumId": 1223,
"trackId": 10837,
"playedSecs": 300,
"startedAt": 1504695227000,
"endedAt": 1504695227000
}
PlayInfo
字段名 | 类型 | 描述 |
---|---|---|
play32 | Resources | 32位mp3音频地址(注意:不是所有声音都会存在) |
play64 | Resources | 64位mp3音频地址(注意:不是所有声音都会存在) |
play24M4a | Resources | 24位码率m4a格式音频 |
play64M4a | Resources | 64位码率m4a格式音频 |
downloadUrl | Resources | 音频下载地址 (注意:不是所有声音都会存在) |
{
"play64M4a": {
"size": 37021149,
"url": "http://audio.xmcdn.com/group30/M02/3F/2C/wKgJXlmBkyqCCGafAjTl3bXNRQY773.m4a"
},
"downloadUrl": {
"size": 14130036,
"url": "http://download.xmcdn.com/group30/M05/3F/30/wKgJXlmBkzaDaqUaANebdDhPrOk981.m4a"
},
"play24M4a": {
"size": 14130036,
"url": "http://audio.xmcdn.com/group30/M05/3F/30/wKgJXlmBkzaDaqUaANebdDhPrOk981.m4a"
},
"play64": {
"size": 36625278,
"url": "http://fdfs.xmcdn.com/group31/M0A/21/89/wKgJX1mBkv2jSLHpAi7bfg8hHe0870.mp3"
},
"play32": {
"size": 18312710,
"url": "http://fdfs.xmcdn.com/group31/M0A/21/AB/wKgJSVmBkuLy4gy2ARduBg8ijJM085.mp3"
}
}
Resources
字段名 | 类型 | 描述 |
---|---|---|
url | String | 资源地址 |
size | Integer | 资源占用存储空间的大小,以字节计算 |
{
"url": "http://fdfs.cdn.com/12312/abc",
"size": 1000
}
ResourceKit
字段名 | 类型 | 描述 |
---|---|---|
id | Integer | 资源ID |
categoryId | Integer | 目录ID |
name | String | 资源名称 |
description | String | 资源描述 |
logo | String | 资源logo |
{
"id": 123,
"categoryId": 1000,
"name": "名称",
"description": "描述",
"logo": ""
}
SkillList
字段名 | 类型 | 描述 |
---|---|---|
category_name | String | 类别名称 |
skill_collect | JSONArray | 技能实体Skill列表 |
[
{
"category_name": "热门技能",
"skill_collect": []
}
]
Skill
字段名 | 类型 | 描述 |
---|---|---|
skill_version | String | 技能版本 |
skill_name | String | 技能名称 |
skill_id | String | 技能ID |
skill_icon | String | 技能图标 |
usage_detail_list | JSONArray | 技能指令使用示例 |
{
"skill_version": "v1.0",
"skill_name": "提醒",
"skill_id": "os.skill.17",
"skill_icon": "http://fdfs.xmcdn.com/group55/M08/45/F0/wKgLf1ydxI6ju-iAAAAwB0Q2Ixg596.png",
"usage_detail_list": [
{
"usage_detail": "帮我定个提醒"
},
{
"usage_detail": "提醒我周六上午带宝宝打疫苗"
},
{
"usage_detail": "定4月18号的提醒"
},
{
"usage_detail": "提醒我周五聚餐"
},
{
"usage_detail": "我后天有什么安排"
},
{
"usage_detail": "删除明天的提醒"
},
{
"usage_detail": "删除4月20号的提醒"
}
]
}
SkillDetail
字段名 | 类型 | 描述 |
---|---|---|
skill_version | String | 技能版本 |
skill_version_update_time | long | 技能版本更新时间 |
skill_name | String | 技能名称 |
skill_id | String | 技能ID |
skill_icon | String | 技能图标 |
skill_usage | JSONArray | 技能指令使用示例 |
skill_introduce | String | 技能简介 |
skill_version_info | String | 技能版本介绍 |
loginDetail | SkillLoginDetail | 技能登录信息 |
{
"skill_version": "v1.0",
"skill_version_update_time": 1553830965000,
"skill_icon": "http://fdfs.xmcdn.com/group57/M0A/44/18/wKgLgVydw9bhkzAIAAAuF7djPdE529.png",
"loginDetail": {
"skillPtfId": "os.ptf.xmly.testsdkdemo",
"h5": {
"loginPage": "https://api.xiaoyastar.com/open/skill-login/h5?osAccessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjEyMTMsInNraWxsSWQiOiJvcy5za2lsbC4xNCIsImlzcyI6Inh5LW9zLXVjZW50ZXIiLCJleHAiOjE1NjgyNjE2MzksImRldmljZUlkIjoiYjkwMzFiNGIwYjIxNjg1NCJ9.QKcHlL6DOGoI4r7NWiRXhqVz9dgFInwho9i0qALu0hY"
},
"status": 0
},
"skill_usage": [
{
"usage_type": "指令示例",
"usage_detail_list": [
{
"usage_detail": "我想听郭德纲的相声"
},
{
"usage_detail": "给我来一段评书"
},
{
"usage_detail": "我要听广播"
},
{
"usage_detail": "我想听睡前故事\n\n"
}
]
}
],
"skill_name": "有声内容",
"skill_introduce": "我们拥有丰富的音频内容,涵盖相声段子、有声书、综艺娱乐、情感生活、评书、外语、培训讲座、广播剧、商业财经、健康养生、汽车、旅游、电影等20多个分类,快来点播吧",
"skill_id": "os.skill.14",
"skill_version_info": "系统默认技能"
}
SkillLoginDetail
字段名 | 类型 | 描述 |
---|---|---|
status | Integer | 登录状态 0未登录 1已登录 2无需登录 |
h5 | JSONObject | h5 登录方式 |
h5.loginPage | String | 登录页面地址 |
qrcode | JSONObject | 二维码登录方式 |
qrcode.qrId | String | 二维码ID,用于跟踪登录状态 |
qrcode.url | String | 二维码url,客户端根据此url,本地生成二维码 |
qrcode.expiresIn | Integer | 二维码过期时间,单位:秒 |
{
"h5": {
"loginPage": "https://m.ximalaya.com/login"
},
"qrcode": {
"qrId":"3DE4F2E57538458A9C87735C83A5D091",
"url":"https://mobile.ximalaya.com/passport-sign-mobile/qrcode/login/3DE4F2E57538458A9C87735C83A5D091?to=喜马拉雅",
"expiresIn":600
},
"status": 0
}
MobileInfo
字段名 | 类型 | 描述 |
---|---|---|
device_id | String | 设备id |
client_dd | String | 小雅os的客户id |
sys_type | Integer | 设备类型,1:安卓;2:ios |
app_version | String | app版本 |
control_client_id | String | 控制音响的client_id |
control_sn | String | 控制音响的sn |
status | Integer | 状态:1:正常;0:删除 |
create_dt | String | 创建时间 |
update_dt | String | 修改时间 |
mobile_id | Integer | 数据库里存储手机信息的id值 |
{
"mobile_info": {
"device_id": "mobile_wt",
"client_id": "os.client.000001",
"sys_type": 1,
"app_version": "1.0.0",
"control_client_id": "",
"control_sn": "",
"status": 1,
"create_dt": "2019-05-31 13:52:52",
"update_dt": "2019-05-31 13:52:52",
"mobile_id": 11
}
}
SpeakerList
字段名 | 类型 | 描述 |
---|---|---|
speaker_id | String | 数据库里存储的id值 |
sn | String | 序列号 |
product_id | Integer | os统一的product_id |
product_name | String | 大雅和nano的名称 |
client_id | String | os统一的client_id |
rom_version | String | rom版本 |
speaker_version | String | 音箱apk版本 |
name | String | 音箱名称 |
ssid | String | 链接ssid |
mac | Integer | mac地址 |
{
"speaker_list": [
{
"speaker_id": 20,
"sn": "XYDFZT0003",
"client_id": "os.client.sdkdemo",
"product_id": "S_PROD1_7",
"product_name": "",
"rom_version": "5.0.2",
"speaker_version": "0.0.6",
"name": "",
"ssid": "DFZT",
"mac": "94:E0:D6:5B:C8:4F"
},
{
"speaker_id": 27,
"sn": "XYDFZT0004",
"client_id": "os.client.sdkdemo",
"product_id": "N_PROD1_7",
"product_name": "",
"rom_version": "5.0.2",
"speaker_version": "0.0.8",
"name": "小雅AI音箱",
"ssid": "DFZT",
"mac": "AC:20:31:66:E5:0A"
},
{
"speaker_id": 30,
"sn": "RX902000206",
"client_id": "os.client.sdkdemo",
"product_id": "N_PROD1_7",
"product_name": "",
"rom_version": "5.0.3",
"speaker_version": "0.0.8",
"name": "小雅AI音箱",
"ssid": "DFZT",
"mac": "AC:20:31:66:E5:0A"
},
{
"speaker_id": 31,
"sn": "RX902000033",
"client_id": "os.client.sdkdemo",
"product_id": "N_PROD1_7",
"product_name": "",
"rom_version": "5.0.2",
"speaker_version": "0.0.8",
"name": "小雅AI音箱",
"ssid": "DFZT",
"mac": "F8:58:6C:DE:ED:DA"
}
]
}
SpeakerInfo
字段名 | 类型 | 描述 |
---|---|---|
speaker_id | String | 数据库里存储的id值 |
sn | String | 序列号 |
product_id | Integer | os统一的product_id |
product_name | String | 大雅和nano的名称 |
client_id | String | os统一的client_id |
rom_version | String | rom版本 |
speaker_version | String | 音箱apk版本 |
name | String | 音箱名称 |
ssid | String | 链接ssid |
mac | Integer | mac地址 |
{
"speaker_info": {
"speaker_id": 25,
"sn": "YAMI00018A900117",
"client_id": "os.client.000027",
"product_id": "S_PROD4_80",
"product_name": "",
"rom_version": "0.0.1",
"speaker_version": "0.0.6",
"name": "小雅AI音箱",
"ssid": "XMLY",
"mac": "14:16:9E:2C:7D:DC"
}
}
Rom
字段名 | 类型 | 描述 |
---|---|---|
os_version | String | |
desc | String | |
url | String | |
hash_code | String | |
forced_update | boolean | |
update_desc | String |
{
"os_version": "",
"desc": "",
"url": "",
"hash_code": "",
"forced_update": false,
"update_desc": ""
}
Apk
字段名 | 类型 | 描述 |
---|---|---|
app_version | String | |
desc | String | |
show_version | String | |
url | String | |
hash_code | String | |
forced_update | boolean | |
update_desc | String |
{
"os_version": "",
"desc": "",
"url": "",
"hash_code": "",
"forced_update": false,
"update_desc": ""
}
Progress
字段名 | 类型 | 描述 |
---|---|---|
code | String | |
desc | String |
{
"code": "200",
"desc": ""
}
OutputSpeech
字段名 | 类型 | 描述 |
---|---|---|
type | String | “PlainText 或者SSML” |
text | String | type= “PlainText”时,值不能为空 |
ssml | String | type= “SSML”时,值不能为空 |
{
"type": "PlainText",
"text": "好的,南征北战,生来倔强",
"ssml": ""
}
Directives
字段名 | 类型 | 描述 |
---|---|---|
type | String | AudioPlay.Play |
playBehavior | String | ENQUEUE |
audioItem | JsonObject | 播放器所需播放内容的信息 |
[
{
"type":"AudioPlay.Play",
"playBehavior":"ENQUEUE",
"audioItem":{
"stream":{
"url":"http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"token":"",
"offsetInMilliseconds":0
},
"metaData":{
"title":"生来倔强",
"id":"246/003LtC4H15LRSE.mp3",
"albumTitle":"生来倔强",
"albumId":0,
"artist":"南征北战",
"art":{
"small":"",
"middle":"",
"large":""
}
}
}
}
]
PlayItemInfo
字段名 | 类型 | 描述 |
---|---|---|
hot | Integer | |
artStyle | String | |
useDealPlayerItem | boolean | |
type | Integer | |
source | Integer | |
id | String | |
title | String | |
artistId | String | |
artist | String | |
albumId | Integer | |
albumIncludeTracksCount | Integer | |
album | String | |
categoryId | String | |
category | String | |
breakSecond | Integer | |
doubanId | Integer | |
picSmall | String | |
picMiddle | String | |
picLarge | String | |
isPaid | boolean | |
isCouldPlay | Integer | |
duration | Integer | |
url | String | |
sqUrl | String | |
_urlHook | boolean | |
_urlHookPlayed | boolean | |
subSource | Integer | |
audioVoice | String | |
sqAudioVoice | String | |
ABtest | Integer | |
resType | Integer | |
triggerType | Integer |
{
"hot":0,
"artStyle":"",
"useDealPlayerItem":false,
"type":1,
"source":11,
"id":"246/003LtC4H15LRSE.mp3",
"title":"生来倔强",
"artistId":"0",
"artist":"南征北战",
"albumId":0,
"albumIncludeTracksCount":0,
"album":"生来倔强",
"categoryId":"",
"category":"",
"breakSecond":0,
"doubanId":0,
"picSmall":"",
"picMiddle":"",
"picLarge":"",
"isPaid":false,
"isCouldPlay":0,
"duration":0,
"url":"http://dlbcdn.ocm.ainirobot.com/246/003LtC4H15LRSE.mp3",
"sqUrl":"",
"_urlHook":false,
"_urlHookPlayed":false,
"subSource":0,
"audioVoice":"0.271641",
"sqAudioVoice":"",
"ABtest":0,
"resType":204,
"triggerType":1
}