开发须知
-
-
-
-
-
AliGenie 开发者答疑交流钉钉群 : 31630820
编写流程
创建账号
-
在
-
并开通天猫精灵,创建天猫精灵小程序
-
在 控制台 进入小程序 设置 页面,在 多端发布支持 分页中,开通 天猫精灵 业务。
-
-
创建
IDE 下载
小程序开发中者工具
创建天猫精灵小程序
此时若没有登录,会弹出登录二维码,请通过创建 小程序 的 支付宝账号 扫码并完成登录。
进入项目开发,若项目从未绑定过小程序,则会自动弹出 关联应用 弹窗,点击下拉框,选择要关联的小程序,完成关联,就可以开始代码开发了。
页面开发
小程序的开发,请参考支付宝小程序的
真机调试
-
下载天猫精灵 app,绑定设备,绑定设备的账号为 支付宝开放平台 创建小程序的账号
-
点击 请选择设备,在设备列表中 添加设备,根据页面指导输入天猫精灵设备上播报的验证码,点击确认即可完成调试设备的添加。
-
点击预览, 点击推送 ,即可将页面推送至天猫精灵设备上, 进行调试
如果输入验证码后,没有成功绑定设备,可尝试先上传一个小程序的版本,再重试一次。
小程序真机预览对账号的要求:
-
平台开发者账号和支付宝开发者账号绑定
-
平台开发者账号登录天猫精灵 APP,用于给测试使用的带屏天猫精灵设备配网
-
首次推送真机测试时,使用平台开发者账号登录天猫精灵 APP,再次扫码授权应用
-
支付宝小程序 IDE 登录的账号为绑定的支付宝开发者账号
-
IDE 中的项目与支付宝开发者账号创建的小程序相绑定
-
IDE 中的项目从未绑定过其他小程序 ID
语音交互
语音 API
天猫精灵 api: https://www.aligenie.com/doc/357834/gtr434
语音 api 配置交互
示例:
Page({
onShow() {
my.call('useSystemSkill', {
skillName: 'chat',
})
},
//默认的语音指令回调
onVoiceEvent(event){
my.alert({content: "onVoiceEvent = " + JSON.stringify(event)});
},
});
useSystemSkill
详细:https://www.aligenie.com/doc/357834/gtr434
onVoiceEvent
详细:https://www.aligenie.com/doc/357834/fft03z
语音交互文件配置方式
1. mini.project.json
文件配置
{
"includes": [
"app.json",
"skill.json"
]
}
2. app.js
同级下添加文件 skill.json
-
command
:意图 将voice
中的语音,转换为command
-
voice
:语音操作的语料 语料中可以有参数,如@{index:Number}
表示参数名是 index,类型为数字。 目前参数类型支持:String, Number, Date, Time等 -
tips
:当用户语音未完全满足当前语料时的语音操作提示信息 预留的可选字段:语音操作提示信息,给用户的操作引导。 后续的容器版本,将会自动提取该字段内容,以轮播的方式展示操作引导。
例子:
{
"skill": [
{
"command": "pagechage",
"voice": [
"打开@{dish:String}页",
"打开@{dish:String}也",
"打开@{dish:String}叶",
"打开@{dish:String}耶",
"打开@{dish:String}野",
"打开@{dish:String}夜",
"打开@{dish:String}爷",
"打开@{dish:String}",
"打开@{dish:String}业",
"跳转@{dish:String}野",
"去@{dish:String}",
"到@{dish:String}",
"去到@{dish:String}",
"来对@{dish:String}",
"返回@{dish:String}"
],
"tips":["打开首页"]
},
{
"command": "onNeed",
"voice": [
"@{dish:String}",
"我想看看我的@{dish:String}有哪些",
"我有哪些@{dish:String}是要做的"
],
"tips":["我想看看我的待办事项有哪些","打开点餐页"]
}
]
}
3. 在页面的配置文件 json 中配置
commands
:Array 类型
当前页面配置的意图,语音指令名列表,需在skill.json
中有配置。
onVoice
:
语音command
对应的 js 响应函数。onVoice
中的参数名,需与skill.json
中对应的语料参数名相同。
{
"skill": [
{
"commands": ["pagechage"],
"onVoice": "onpagechange(dish)"
}
]
}
4.在页面的 js 文件中配置
例子:
Page({
onpagechange(dish) {//此函数为配置文件中onVoice的属性值
let strArr = ["待办", "代办", "带办", "带半", "待半"];
if (strArr.includes(dish)) {
this.toPage("../need/need")
} else {
my.tg.playTTS({ text: '您好,您可以说:打开待办页', openMic: true });
}
},
toPage(pageUrl) {
my.redirectTo({
url: pageUrl
})
},
});
官方文档: https://www.aligenie.com/doc/357834/ewa2ga
https://www.aligenie.com/doc/357834/yg08kg
配置完意图后 ,在页面的 xxx.js
下 onShow
方法中增加语音能力注册,示例如下:
my.call('useCustomSkill', {
skillName: '支付宝小程序Id(小程序应用基本信息里的 MiniAPP_ID)',
secretKey: '从基本信息页面获得',
pageId: '语音交互模型-->配置页面意图 中创建的页面地址'
})
会调用 page
内的 onVoiceEvent()
方法
Page({
onVoiceEvent(event){
my.alert({content: "onVoiceEvent = " + JSON.stringify(event)});
},
});
示例数据:
{
"command":"NluResult",
"domain":"AliGenie.Text",
"param":{
"domain":"通常为小程序名称",
"intent":"意图的名称,skill.json方式的commands配置的名称",
"query":"用户的原始话术",
"slots":[]
}
}
其他
API:my.call
使用示例:
//隐藏顶部导航栏
my.call('hideNavigationBar');
//显示顶部导航栏
my.call('showNavigationBar');
//模拟物理按键,当前仅支持BACK、HOME两种键值
my.call("sendKeyEvent", {"keyCode": "BACK"});
小程序发布
-
语音小程序开发完成后,您就可以在 IDE 中上传小程序 ;
-
如果是语音小程序则需要在智能应用平台应用发布页面填写应用的发布信息,参考【
-
填写完发布内容后,去
-
如果审核通过,需要去
注意事项
1.发布须知
2.建议使用 v1.17 稳定版小程序开发天猫精灵小程序 ,用ide 2.0以上上传天猫精灵小程序,