Проблема с лямбда-функцией Alexa при попытке получить электронную почту пользователя и экспортировать обработчики - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь проверить свой навык 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();
}

Кроме того, я думаю, что также есть проблемы с экспортом, но я не могу его найти. Спасибо за вашу помощь

...