如何在Alexa Skill Fact中保存自由格式的用户输入

时间:2019-04-19 18:36:24

标签: node.js alexa alexa-skills-kit

我正在尝试创建一个技能事实,该技能事实可以通过alexa将票发送到办公室。我希望用户在电子邮件中输入他们的电子邮件,名称和问题。问题是我不确定如何获取自由格式的文本并将其保存在意图插槽或index.js

我研究了AMAZON.LITERAL,但它不再起作用。我还查看了AMAZON.searchQuery,但这似乎不是我想要的,因为该查询来自数据库。而且,我不希望使用来自企业的数千封电子邮件来创建自定义意图。

理想情况下,我希望代码看起来像这样:

const sendEmailIntentHandler = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'sendEmail';
    },
    async handle(handlerInput) {
        const speechText = "what is your email";
        return handlerInput.responseBuilder
            .speak(speechText)
            .reprompt()
            .getResponse();
            //somewhere here store the response as a session variable
    }
};

我已经研究了getResponse(),但我认为它没有做我想做的事,它存储了用户的响应。是否可以将用户输入存储在index.js一侧?还是只能通过插槽?

1 个答案:

答案 0 :(得分:0)

我认为最好的选择是request the customer contact information permission,并根据您的意图添加一个自定义广告位,并列出可能的票务问题。

通过这种方式,当您的用户启用技能时,他们将必须同意他们的信息共享,而您在提出请求时就已经拥有了该技能。

很遗憾,不再可能从用户那里获取自由格式的输入。