3.3.5xiaoyouLight接口

xiaoyouLight接口

1. 概述

本模块是小友的功能性接口模块。

这些接口最先是出现在移动端的模块中,也是智友和后端交互的核心模块。

在友空间 APP 端是调用原生模块进行发起请求和处理响应。

在非移动端环境下,例如在开发模式下和 PC 端友空间模式下,通过 axios 模块进行模拟请求和响应,1:1 复刻出一个 xiaoyouLight 模块,在入参和回调方面,和原生模块保持一致。

2. 接口

initXiaoYou

初始化小友参数。注意Android端初始化之前需要检测录音和存储权限是否已申请,没有这些权限的话需要先申请。

params

domain:

  • 类型:字符串类型

  • 描述:(必填)统一域名。根据环境选取对应的统一域名 bodyDomainId:

  • 类型:字符串类型

  • 描述:(必填)body中的标识,小友机器人里面用于区分领域的domain

  • 默认:'diwork'

tenantid:

  • 类型:字符串类型
  • 描述:(必填)租户ID

token:

  • 类型:字符串类型
  • 描述:(必填)固定验权token

robotid:

  • 类型:字符串类型
  • 描述:(可选)该值为意图id,非必填。如果想测试某些返回值,可使用默认值

userid:

  • 类型:字符串类型
  • 描述:(必填)用户ID

yhtAccessToken:

  • 类型:字符串类型
  • 描述:(必填)友互通token

domainid:

  • 类型:字符串类型
  • 描述:(必填)url.domainid中的APP标识,友空间极速版默认值为"yonapppro"
  • 默认:'yonapppro'

robotVersion:

  • 类型:字符串类型
  • 描述:(必填)机器人版本
  • 默认:'v2'

locale:

  • 类型:字符串类型
  • 描述:(可选项)语种
  • 默认:'zh_cn'

deviceType:

  • 类型:字符串类型
  • 描述:(可选项)设备类型
  • 默认:'app'

sessionid:

  • 类型:字符串类型
  • 描述:(可选项)会话id

msgtype:

  • 类型:字符串类型
  • 描述:(必填)消息类型
  • 默认:'text'

testFlag:

  • 类型:布尔
  • 描述:(可选项)标记是否是测试状态
  • 默认:false

bosTime:

  • 类型:数字类型
  • 描述:(可选项)静音超时时间(1--10000ms)
  • 默认:3000

eosTime:

  • 类型:布尔
  • 描述:(可选项)停止说话检测时间(1--10000ms)
  • 默认:1000

callback(ret)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否成功
  status: true
}

示例代码


var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.initXiaoYou({
  token: "",
  domain: "",
  yhtAccessToken: "",
  tenantid: "",
  bodyDomainId: "",
  userid: "",
  robotVersion: "",
  domainid: "",
  enterpriseid: "",
  uid: "",
  bosTime: 3000,
  eosTime: 3000
}, function (ret) {
  alert(JSON.stringify(ret, err));
});

可用性

iOS Android Web
OK OK OK

requestChat

发送消息

params

text:

  • 类型:字符串
  • 描述:消息内容

voiceInput:

  • 类型:布尔
  • 描述:(可选项)是否是语音
  • 默认:true

callback(ret,err)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否成功
  status: true,
  message: {
    //json对象;返回内容
  }
}

err:

  • 类型:JSON 对象
  • 描述:错误信息
  • 内部字段:
{
  //字符串类型;失败的原因
  msg: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.requestChat({
  text: '',
  voiceInput: true
}, function (ret, err) {
  alert(JSON.stringify(ret))
})

可用性

iOS Android Web
OK OK OK

requestWelcome

欢迎语

callback(ret,err)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否成功
  status: true,
  //json对象;返回内容
  message: {
  }
}

err:

  • 类型:JSON 对象

  • 描述:错误信息

  • 内部字段:

{
  //字符串类型;失败的原因
  msg: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.requestWelcome(function (ret, err) {
  alert(JSON.stringify(ret));
});

可用性

iOS Android Web
OK OK OK

requestCancel

取消流程

callback(ret,err)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否成功
  status: true,
  message: {
    //json对象;返回内容
  }
}

err:

  • 类型:JSON 对象
  • 描述:错误信息
  • 内部字段:
{
  //字符串类型;失败的原因
  msg: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.requestCancel(function (ret, err) {
  alert(JSON.stringify(ret));
});

可用性

iOS Android Web
OK OK

startRecording

开始识别

params

bosTime:

  • 类型:数字类型
  • 描述:(可选项)静音超时时间(1--10000ms)
  • 默认:3000

eosTime:

  • 类型:布尔
  • 描述:(可选项)停止说话检测时间(1--10000ms)
  • 默认:1000

callback(ret)

ret:

  • 类型:JSON 对象

内部字段:

{
  //字符串类型;事件返回,取值范围 :start 接口调用完成,仅返回一次 recognizerVolume 检测到音量大小事件 recognizerProgress 识别过程中 recognizerSuccess 识别成功 recognizerFailure 识别失败
  eventType: 'start',
  //布尔类型;是否成功,仅代表开启识别成功,不代表识别成功,eventType为start返回
  status: true,
  //字符串类型; 识别结果,eventType为recognizerSuccess返回
  resultText: '',
  // 数字类型;识别过程中检测到的实时音量大小,取值范围为 0-30  eventType为recognizerVolume返回
  volume: 0,
  //数字类型;错误码 ,eventType为recognizerFailure返回
  errorCode: 0,
  //数字类型;错误码类型 ,eventType为recognizerFailure返回
  errorType: 0,
  //字符串类型; 错误描述,eventType为recognizerFailure返回
  errorDesc: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.startRecording(function (ret, err) {
  alert(JSON.stringify(ret));
});

可用性

iOS Android Web
OK OK OK

stopRecording

停止录音

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.stopRecording();

可用性

iOS Android Web
OK OK OK

startSpeaking

开始语音播报

params

text:

  • 类型:字符串类型
  • 描述:播报内容

callback(ret,err)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否成功
  status: true
}

err:

  • 类型:JSON 对象
  • 描述:错误信息
  • 内部字段:
{
  //数字类型
  errorCode: 0,
  //数字类型
  errorType: 0,
  //字符串类型
  errorDesc: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.startSpeaking({
  text: ''
}, function (ret, err) {
  alert(JSON.stringify(ret, err));
});

可用性

iOS Android Web
OK OK

stopSpeaking

停止语言播报

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.stopSpeaking();

可用性

iOS Android Web
OK OK

notifyToYouzone

调用此接口可以实现与原生app之间进行数据交互,例如通知友空间打开聊天页面、进行打卡等

params

action:

  • 类型:字符串类型
  • 描述:事件名称,友空间根据此字段执行相应的动作,比如跳转到打卡页面。参数值可以和友空间商议

data:

  • 类型:json对象
  • 描述:友空间执行相应动作所需的参数。参数值需要友空间告知需要哪些具体参数

callback(ret,err)

ret:

  • 类型:JSON 对象

内部字段:

{
  data: {
    //json对象;回调数据
  }
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.notifyToYouzone({
  action: '',
  data: {}
}, function (ret) {
  alert(JSON.stringify(ret));
});

可用性

iOS Android Web
OK OK

可提供的1.0.1及更高版本

openXiaoYou

打开小友界面

示例代码

var xiaoyouLight = api.require('xiaoyouLight');

xiaoyouLight.initXiaoYou({
  token: "",
  domain: "",
  yhtAccessToken: "",
  tenantid: "",
  bodyDomainId: "",
  userid: "",
  robotVersion: "",
  domainid: "",
  enterpriseid: "",
  uid: "",
  bosTime: 3000,
  eosTime: 3000
}, function (ret) {
});
xiaoyouLight.openXiaoYou();

可用性

iOS Android Web
OK OK

getInitParams

获取原生传递的初始化参数,如头像,appcode、友互通token等

callback(ret)

ret:

  • 类型:JSON 对象

内部字段:

{
  "domain": "https://c1.diwork.com/iuap-aip-vpa/apiregister",
  "appcode": "diwork",
  "bodyDomainId": "diwork",
  "token": "1b8f0a4f-39f4-4c0f-8aec-74b2a4d655aa",
  "yhtAccessToken": "18fdea7a-b6f3-45ad-bbc8-uspacemobile__5f5865dd74135b4f289c7b8f5ee2744b_1679308797442dccore0yonbip-ec-based8da2a51YT",
  "userid": "c400d401-d7cd-4e6b-8454-1236ceb7e87b",
  "uid": "6944469",
  "tenantid": "qyic8c7o",
  "enterpriseid": "5417",
  "headUrl": ""
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight')

xiaoyouLight.getInitParams(function (ret) {
  alert(JSON.stringify(ret))
})

可用性

iOS Android Web
OK OK OK

checkUpdate

检测h5包/model卡片资源包是否有更新

params

type:

  • 类型:数字
  • 描述:0:表示检测整个小友h5包是否有更新;1:表示检测某个modelId的卡片组件是否有更新
  • 默认:0

modelId:

  • 类型:数字
  • 描述:(可选项)卡片id 当type为1时必填

callback(ret)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;接口请求是否成功
  status: true,
  message: {
    //json对象;后台接口响应
  }
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.checkUpdate({
  type: 1,
  modelId: 101
}, function (ret, err) {
  alert(JSON.stringify(ret))
})

可用性

iOS Android Web
OK OK OK

getH5Zip

根据url路径下载最新的h5压缩包到本地

params

urlPath:

  • 类型:字符串
  • 描述:0:表示检测整个小友h5包是否有更新;1:表示检测某个modelId的卡片组件是否有更新

callback(ret)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否下载成功
  status: true,
  //h5资源包本地路径
  path: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.getH5Zip({
  urlPath: "",
}, function (ret, err) {
  alert(JSON.stringify(ret));
});

可用性

iOS Android Web
OK OK OK

unZip

zip包解压,解压后的路径会包含资源包id和版本号信息,便于本地保存和区分

params

zipPath:

  • 类型:字符串
  • 描述:需要解压的zip包原始路径

modelId:

  • 类型:字符串
  • 描述:需要解压的资源包id

version:

  • 类型:字符串
  • 描述:需要解压的zip版本号

type:

  • 类型:数字
  • 描述:0:表示解压小友h5包1:表示解压卡片组件
  • 默认:0

callback(ret)

ret:

  • 类型:JSON 对象

内部字段:

{
  //布尔类型;是否成功
  status: true,
  //h5压缩包解压后的本地路径
  path: ''
}

示例代码

var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.unZip({
  zipPath: '',
  modelId: '',
  version: '',
  type: 0
}, function (ret, err) {
  alert(JSON.stringify(ret))
})

可用性

iOS Android Web
OK OK OK

executeH5Api

执行运行 VPA 的 WebView 中的 JS 代码,可用于与 VPA 交互,支持 vpa 的所有 api。vpa api

params

jscode:

  • 类型:字符串
  • 描述:需要执行的js代码
  • 默认:''
  • 示例:'vpa.sendMessage({msg: "hello"})'

示例代码

var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.executeH5Api({
  jscode: 'vpa.sendMessage({msg: "hello"})'
})

可用性

iOS Android Web
OK OK OK
是否仍需要帮助? 请保持联络!
最后更新于 2024/10/10