小雅OS开放平台文档

小雅OS开放平台文档

  • 快速入门
  • 客户端接入
  • 服务端接入

›API

概述

  • 服务端接入
  • 数据回传

API

  • WebSocket 协议定义
  • HTTP 协议定义
  • 调用样例
  • API 列表
  • 技能内调用
  • 错误码

HTTP 协议定义

在没有语音流数据传输时,小雅OS提供HTTP协议访问接口。

HTTP接口分为两个类型:单一功能API和技能内调用API,其中技能内调用API调用使用接口:serv/intent/invoke。

消息格式

请求头部

Content-Type: application/x-www-form-urlencoded # 如果Method是POST
Cache-Control: no-cache
Method: GET/POST # 根据接口不同而不同

公共参数

除账号对接外的大部分接口使用公共参数。

params

字段必填类型说明
osOpenId否String小雅OS用户唯一标识,见osOpenId,由serv/user接口返回
deviceType是Integer请求来源客户端类型:1-伴侣端 2-设备端,请填写客户端的实际类型
productId是String产品ID,小雅OS硬件开放平台创建设备后获取,获取过程:创建产品
sn是String设备序列号,若deviceType为2时必填,由贵方自主生成,同一台设备请务必保持不变,登录信息与设备有关
deviceId是String伴侣所在的手机序列号,若deviceType为1时必填,同一台设备请务必保持不变,登录信息与设备有关
lat否String纬度,如果有建议上报,部分技能会根据地理位置获取默认位置
lng否String经度
sysType是Integer手机系统类型:1-Android 2-IOS,若deviceType为1时必填
appVersion是String手机应用版本号,若deviceType为1时必填
sysVersion是String手机系统版本号,若deviceType为1时必填
speakerVersion是String对应的设备版本号,若deviceType为2时必填
romVersion是String对应的设备rom版本号,若deviceType为2时必填
dt是Long毫秒unix时间戳

osAccessToken

接口鉴权令牌,有效期为2小时(请依据接口返回),最大保有量为5个,更多详细规则及获取方法请见接口:/serv/account/os-access-token

返回值格式

返回值为JSON格式

交互逻辑

接口交互过程:

  1. 获取访问令牌:/serv/account/os-access-token
  2. 创建用户(用户小雅OS服务时创建即可):serv/user
  3. 访问NLU接口:/serv/text/query
  4. 访问其他接口:/serv/intent/invoke

在交互过程中,/serv/text/query、/serv/intent/invoke等接口均涉及到Domain/Intent概念。

示例

以请求获取当前设备的资源包列表接口为例,假设已经获取好了相关参数:

osAccessToken: xxx
params: 
    osClientId: os.client.sdkdemo
    deviceType: 1
    productId: N_PROD1_7
    sn: test
    xn: 781f7740
    deviceId: demo-device-id
    lat: 12.3
    lng: 32
    version: 1.2
    osVersion: 2.3
    dt: 123
    sysType: 1
    appVersion: 1.0
    sysVersion: 2.0

接口提供的intent参数值为:

{
  "domain":"xima",
  "intent":"get_resource_kits",
  "slots":{}
}

第一步:格式化参数

var osAccessToken = encodeURIComponent("xxx");
var params = '{"osClientId":"os.client.sdkdemo","deviceType":1,"productId":"N_PROD1_7","sn":"test","xn":"781f7740","deviceId":"demo-device-id","lat":"12.3","lng":"32","version":"1.2","osVersion":"2.3","dt":123,"sysType":1,"appVersion":"1.0","sysVersion":"2.0"}';
var e_params = encodeURIComponent(params);
var intent = '{"domain":"xima","intent":"get_resource_kits","slots":{}}';
var e_intent = encodeURIComponent(intent);

第二步:URL拼接

var url = "https://api.xiaoyastar.com/serv/intent/invoke?osAccessToken=" + osAccessToken + "&params=" + e_params + "&intent=" + e_intent;

第三步:发出请求即可。

postman

我们推荐使用postman进行接口调试。下载安装完成后,请下载以下两个postman配置文件:

  • 环境配置
  • 接口

请分别导入环境配置(教程)和接口(教程),然后将你申请到的信息配置到postman中。

postman

然后选择正式环境:

postman

然后就可以按上面的顺序进行请求测试了。

postman

← WebSocket 协议定义调用样例 →
  • 消息格式
    • 请求头部
    • 公共参数
    • 返回值格式
  • 交互逻辑
  • 示例
  • postman
北京小雅星空科技有限公司 京ICP备19010603号