javascript - 在 AWS Lambda 函数中获取插槽的问题
问题描述
我正在尝试构建一个简单的 Alexa Skill。现在,我想访问我的一些插槽值。这是我的代码。当我取消注释我定义 Alexa 的行时,我的技能将不起作用。另外,如果我只取消注释定义 var text 的行,我仍然会得到“技能响应有问题”。Const 给出相同的输出。我正在使用称为配方的自定义插槽。如何访问我的 lambda 函数中的插槽?谢谢。
const breakfast = {
"bacon and eggs":["bacon","egg"],
"buttered toast":["bread", "butter"]
};
const lunch = {
"ham sandwich":["ham","cheese"]
};
const dinner = { "Steak and eggs": ['steak','eggs']};
//const Alexa = require('ask-sdk-core');
exports.handler = (event, context, callback) => {
try {
if (event.request.type === 'LaunchRequest') {
callback(null, buildResponse('Hello from Lambda'));
} else if (event.request.type === 'IntentRequest') {
const intentName = event.request.intent.name;
if (intentName === 'breakfast') {
callback(null, buildResponse(Object.keys(breakfast)+"") );
}
else if (intentName === 'lunch') {
callback(null, buildResponse(Object.keys(lunch)+"") );
}
else if (intentName === 'dinner') {
callback(null, buildResponse(Object.keys(dinner)+"") );
}
else if (intentName ==='requestRecipe'){
//var text = this.event.request.intent.slots.recipe.value;
//const meal = Alexa.getSlotValue(intentName, "meal")
callback(null, buildResponse("Recipe requested") );
}
else {
callback(null, buildResponse("Sorry, i don't understand"));
}
} else if (event.request.type === 'SessionEndedRequest') {
callback(null, buildResponse('Session Ended'));
}
} catch (e) {
context.fail(`Exception: ${e}`);
}
};
function buildResponse(response) {
return {
version: '1.0',
response: {
outputSpeech: {
type: 'PlainText',
text: response,
},
shouldEndSession: false,
},
sessionAttributes: {},
};
}
解决方案
对于一些上下文:我的 lambda 具有我的 alexa 托管技能的端点,而 alexa 技能具有 lambda 的端点。当我说 const 给出相同的输出时,我的意思是当我使用 const 时,它不是使用 var,而是做同样的事情。我作为回复得到的 JSON 文件是空括号。
我发现了我的问题背后的问题。而不是使用
//var text = this .event.request.intent.slots.recipe.value; 我只是做了 var text = event.request.intent.slots.recipe.value; 我现在可以使用文本来构建响应或类似的东西。
推荐阅读
- python - Square 客户端 sdk 在使用 list_customers 时返回 KeyError:''
- vue.js - 自动完成输入 Vuetify 错误
- python - 我们如何计算 Python 中所有列中 NOT NULL 值的总数?
- ios - Objective-c 对象引用计数是如何设置为 -1 的?
- python - 非标准化词典检索表
- ansible - 从主机变量(不是静态清单)创建一个 IP 地址列表及其匹配的网络掩码
- android - Recyclerview onclicklistener 进入另一个recyclerview
- android - 有没有办法在屏幕的两端显示两个 android 按钮
- django - Django - 提供 .values() 时,StringRelatedField() 不应用于查询结果
- html - 如何修复此 CSS 垂直步进进度