Я пытаюсь проверить свой навык Alexa lambda, из которого я хотел бы иметь возможность получать информацию о пользователе, например, его электронную почту. В коде, который я предлагаю, есть что-то, что не работает, но я не могу понять, что.
'use strict';
const baseURL = "https://api.amazonalexa.com";
const axios = require("axios-master");
const Alexa = require('alexa-sdk');
const APP_ID = undefined;
const alexa_info = require('ask-sdk-core');
const GetMyEmailIntentHandler={
canHandle(handlerInput){
return(
handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
handlerInput.requestEnvelope.request.name === 'GetMyEmailIntent'
);
},
handle(handlerInput){
var apiaccessToken =handlerInput.requestEnvelope.context.System.apiAccessToken;
return new Promise(resolve => {
getEmail(apiaccessToken, email => {
var speechText = 'la tua email è: ' + email;
resolve(
handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse()
);
});
});
}
};
function getEmail(apiaccessToken,callback){
const headers={
Authorization: "bearer " +apiaccessToken, "content-typer": "application/json"
};
axios
.get(baseURL + "/v2/accounts/~current/settings/Profile.email",{headers :headers})
.then(response =>{
console.log(JSON.stringify(response));
callback(response.data);
})
}
//funzioni sui sensori
const handlers = { // other functions
};
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler1 = skillBuilder
.addRequestHandler(GetMyEmailIntentHandler)
.lambda();
exports.handler = (event, context) => {
const alexa = Alexa.handler(event, context);
alexa.APP_ID = APP_ID;
// alexa.addRequestHandlers(GetMyEmailIntentHandler);
alexa.registerHandlers(handlers,GetMyEmailIntentHandler);
alexa.execute();
}
Кроме того, я думаю, что также есть проблемы с экспортом, но я не могу его найти. Спасибо за вашу помощь