【发布时间】:2019-08-22 22:58:13
【问题描述】:
我是 Alexa 开发的新手,所以请原谅我的无知。我正在开发的 Alexa 技能需要以下内容:
用户会通过提问来唤醒技能,例如
Alexa,向营销平台询问上次活动的结果
我指的是https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#cert-invoke-specific-request,但不太明白如何从LaunchRequest跳转到特定意图。
其中marketing platform 是技能调用,result of last campaign 是名为CampaignIntent 的技能意图的表达。
还有更多这样的意图,我想根据用户的问题来调用,例如
Alexa,请营销平台给我消息详情
我正在使用 Lambda 作为技能。目前它看起来如下:
exports.handler = (event, context, callback) => {
try {
if (event.request.type === 'LaunchRequest') {
var welcomeMessage = '<speak>';
welcomeMessage = welcomeMessage + 'Welcome to XYZ agency.';
welcomeMessage = welcomeMessage + '</speak>';
callback(null, buildResponse(welcomeMessage, false));
//How can I tell Alexa to jump to CampaignIntent?
}
else if (event.request.type === 'IntentRequest') {
const intentName = event.request.intent.name;
if (intentName === 'CampaignIntent') {
var ssmlConfirm = "<speak>";
ssmlConfirm = ssmlConfirm + 'Hello Auto.';
ssmlConfirm = ssmlConfirm + "</speak>";
callback(null, buildResponse(ssmlConfirm, true));
}
}
}
catch (e) {
context.fail(`Exception: ${e}`);
}
};
function buildResponse(response, shouldEndSession) {
return {
version: '1.0',
response: {
outputSpeech: {
type: 'SSML',
ssml: response,
},
shouldEndSession: shouldEndSession,
},
sessionAttributes: {},
};
}
CampaignIntent 没有任何插槽。它只是从第三方平台 API 获取记录。
我也提到了https://stackoverflow.com/a/48032367/1496518,但不明白如何实现...has a WHEN slot to elicit部分。
【问题讨论】:
标签: node.js alexa-skills-kit alexa-intent alexa-interaction-model