如何解决Node.js:如何获得 Alexa sessionId 和 userID?
我正在构建 Alexa 技能,它需要将用户 ID 和会话 ID 保存到数据库。对于数据库,我使用的是 MongoDb。到目前为止,我已经使用 handlerInput.requestEnvelope.session.sessionID 来获取 sessionID,并获取用户 ID,我正在应用 handlerInput.requestEnvelope.session.user.userID。但是,我收到了会话和用户 ID 的未定义值。这是代码:
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
},async handle(handlerInput) {
const speakOutput = 'Hi,I am Nao. I am here to give you counseling on your anxiety issues. Can I have your name,please? Note: We are not professional therapists or counselors. ';
//These two lines of code is for testing purpose//
const useri=handlerInput.requestEnvelope.session.user.userID;
const g=handlerInput.requestEnvelope.session.sessionID;
const curr_session=new post.session({
alexa_sessionid:handlerInput.requestEnvelope.session.sessionID
});
let user=await post.findOne({userID:handlerInput.requestEnvelope.session.user.userID});
if(!user){
user=new post({
userID:handlerInput.requestEnvelope.session.user.userID
});
}
user.session_list.push(curr_session);
user.save();
return handlerInput.responseBuilder
.speak(speakOutput+g)
.reprompt(speakOutput)
.getResponse();
}
};
如何使用 handlerInput 获取 Alexa 会话和 UserId?
解决方法
如果将代码与实际的 JSON 请求进行比较,可能不容易发现,但错误在于元素名称中“ID”的大写拼写(“userID”、“sessionID”) )。 请求使用驼峰式大小写:“userId”和“sessionId”。
如果您相应地替换代码中的出现次数,您应该获得值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。