【问题标题】:Get unformatted Alexa value from built-in AMAZON.DURATION slot type从内置 AMAZON.DURATION 插槽类型获取未格式化的 Alexa 值
【发布时间】:2017-02-01 11:14:54
【问题描述】:
我正在使用 AMAZON.DURATION 内置 slot type 从我的自定义 Alexa 技能中获取数据。这完美地工作并将给定的持续时间转换为 ISO-8601 持续时间格式。
例如,槽类型成功地将“十分钟”转换为PT10M,我可以从传递给我的 Lambda 函数的请求对象中获取此数据。但是,我也想将未格式化的“十分钟”传递给我的 Lambda 函数。
这可能吗?
【问题讨论】:
标签:
amazon
alexa-skills-kit
amazon-echo
【解决方案1】:
经过多次尝试和错误,我在亚马逊开发者论坛上问了同样的question,亚马逊的官方回复是:
您好,虽然这是一个有趣的请求,但这是不可能的!
我最终用 Python 编写了一个手动转换函数。
【解决方案2】:
应该手动转换它。下面是 nodejs 转换为分钟的代码 sn-p。让我们假设 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);