🔥 介绍
最终效果可以观看视频:https://h5.pipix.com/s/NTHB9gk/
💥 项目结构
🔥 相关技术springboot
使用框架springboot,快速搭建后端服务。
🔥 搭建教程
打开天猫精灵技能官网:https://iap.aligenie.com/
然后选择私域技能:
语音交互模型,虽然我们无调用词,因为无调用词,需要获取你的设备openid,后面会介绍到。
点击创建一个意图。
这里一定要设置默认意图。一会调用就可以获取到我们无调用词的相关数据了。
服务部署。
其实这里就是验证这个服务器是你的。
下载认证数据。
这就是添加好了的。
如果要使用推送功能必须要申请这个权限。
下面就是申请推送语音播报的模板了。
点击新建,可以根据个人需要进行申请。
下面就是测试了。我们开始搭建服务端。
其实这个就回到了最初的哪个问题,我们是无调用词的,怎么触发服务端的代码呢?如何获取一些我们需要的东西呢?
我们在编辑界面,设置一下调用词
然后写好代码,然后上传服务器。
@RequestMapping("/welcome")
public ResultModel<TaskResult> taskResult(@RequestBody String json){
// ResultModel<TaskResult> res = new ResultModel<>();
log.info("json:{}",json);
TaskQuery taskQuery =MetaFormat.parseToQuery(json);
TaskResult taskResult = new TaskResult();
// 从请求中获取意图参数以及参数值
Map<String, String> paramMap = taskQuery.getSlotEntities().stream().collect(
Collectors.toMap(slotItem -> slotItem.getIntentParameterName(),
slotItem -> slotItem.getOriginalValue()));
//处理名称为 welcome 的意图
if ("welcome".equals(taskQuery.getIntentName())) {
taskResult.setReply("欢迎使用自定义技能~");
log.info("json:{}",json);
//处理名称为 weather 的意图
}else {
taskResult.setReply("请检查意图名称是否正确,或者新增的意图没有在代码里添加对应的处理分支。");
}
return reply(taskResult);
}
因为我们需要相关id,我们需要在测试界面,进行真机测试
实际调用,可以看到我们需要的数据,我们可以用到。
🔥实现自动推送
打开自动推送:
https://open-api.aligenie.com/?version=iap_1.0&apiName=PushNotifications
可以看到我们需要这些参数,最重要的是刚才我们在服务端获取的。
DEVICE_UNION_ID :设备unionId
DEVICE_OPEN_ID :设备openId
USER_UNION_ID :用户unionId
USER_OPEN_ID :用户openId
这些值。我们需要用到的。剩下的跟着教程就可以完成了。
最后附上项目代码地址:
https://github.com/CoderXGC/aligenie-demo
https://gitee.com/CoderXGC/aligenie-demo