从内置AMAZON.DURATION插槽类型中获取未格式化的Alexa值



我使用AMAZON.DURATION构建的int插槽类型从我的自定义Alexa技能中获取数据。这可以完美地工作,并将给定的持续时间转换为ISO-8601持续时间格式。

例如,时隙类型成功地将";十分钟";到CCD_ 2,我可以从传递给Lambda函数的请求对象中获得这些数据。

然而,我也想通过未格式化的";十分钟";我的Lambda函数。

这可能吗?

经过多次尝试和错误,我在亚马逊开发者论坛上提出了同样的问题,亚马逊的官方回应是:

嗨,这是不可能的,尽管这是一个有趣的请求!

我最终用Python编写了一个手动转换函数。

应该手动转换。下面是nodejs转换为分钟的代码片段。假设Alexa向Lambda 发送PT5M

var time = "PT5M";
var res = time.substring(2, (time.length));
var mins;
var timelist = res.split("H");
if(timelist.length > 1){
mins = +parseInt((timelist[0]*60),10)+parseInt((timelist[1].substring(0,(timelist[1].length-1))),10);
}else{
mins = res.substring(0, (res.length-1));
}
console.log(mins);

最新更新