Alexa Node.js SDK中的请求拦截器并不总是保存sessionAttributes

时间:2019-07-01 06:56:31

标签: aws-lambda alexa-skills-kit alexa-skill alexa-sdk-nodejs

我具有Alexa技能,正在尝试从外部来源提取数据。它为JSON格式,我试图将数据保存到request interceptor中的session属性中,但是当我尝试在意图处理器中访问该数据时,通常会返回错误,因为它表示属性未定义

我已经尝试调试代码,有时,在不更改我的任何代码的情况下,它可以工作,但仅占实际工作时间的5%。

const RetrieveData = {
    async process(handlerInput){

        https.get(endpoint, resp => {
            let data = "";

            resp.on('data', (chunk) => {
                data += chunk;
            });

            resp.on('end', () => {
                var sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
                sessionAttributes.seeChange = "Testing Change!";
                sessionAttributes.data = JSON.parse(data);
                handlerInput.attributesManager.setSessionAttributes(sessionAttributes);
                console.log(JSON.stringify(handlerInput.attributesManager.getSessionAttributes()));
            });

        }).on("error", (err) => {
            console.log("Error: " + err.message);
        });
    }
};

会话属性甚至不会保存sessionAttributes的seeChange属性。我希望在登录sessionAttributes时会同时看到这两个,但是通常我都不会看到。如有疑问,请询问我更多详细信息。预先感谢!

0 个答案:

没有答案