【发布时间】:2020-06-05 02:59:02
【问题描述】:
如何将电子邮件作为 Alexa 技能的输入?我有以下代码来获取电子邮件输入然后发送电子邮件,但我需要了解如何将有效电子邮件作为输入,如果我输入 test@gmail.com,Alexa 会以某种方式返回 test gmail.com 到我的 lambda 函数。任何帮助将不胜感激。
下面是我的代码:
// sets up dependencies
const Alexa = require('ask-sdk-core');
const i18n = require('i18next');
const languageStrings = require('./languageStrings');
const requester = require('./util');
const SendMailHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
// var code = this.event.request.intent.slots.code.value;
// console.log(code)
// checks request type
return request.type === 'LaunchRequest'
|| (request.type === 'IntentRequest'
&& request.intent.name === 'SendMailIntent');
},
async handle(handlerInput) {
const speechText = 'Welcome, give me the email details'
const request = handlerInput.requestEnvelope.request;
if(request.intent && request.intent.slots) {
const receiver = request.intent.slots.ReceiverEmail.value;
const messageData = {
"receiverEmail": receiver
}
const res = await requester.httpPost(messageData, accessToken);
console.log(res);
}
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse();
},
};
// Took out default Alexa skills code.
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
SendMailHandler
)
.addRequestInterceptors(LocalizationInterceptor)
.addErrorHandlers(ErrorHandler)
.lambda();
【问题讨论】:
-
你的插槽是什么类型的?
-
电子邮件槽的类型是搜索查询
-
用语音捕捉电子邮件并不容易。您可以尝试将输入分为两个对话框,一个用于用户,一个用于域
标签: node.js alexa alexa-skills-kit alexa-voice-service alexa-slot