Как получить доступ к атрибутам сеанса lex в функции aws lamdba - PullRequest
0 голосов
/ 23 апреля 2020

Я написал приведенный ниже код для назначения атрибутов сеанса из моего приложения,

var lexruntime = new AWS.LexRuntime();
    var params = {
        botAlias: 'PizzaOrder', /* required */
        botName: 'PizzaOrder', /* required */
        inputText: 'profile list', /* required */
        userId: '160728846416', /* required */


        sessionAttributes: {
          //'<token>': cookies['token'],
          'token': cookies['token'],
          'communityid':cookies['communityid'],
          'selectedAuthorId':cookies['selectedAuthorId'],
          'kfurl':cookies['kfurl']
          /* '<String>': ... */
        }
      };

      //console.log("Cookies in index js "+cookies['token']);

      lexruntime.postText(params, function(err, data) {
        if (err) console.log(err, err.stack); // an error occurred
        else     console.log(data);           // successful response
      });

Я хочу получить доступ к атрибутам сеанса в моей лямбда-функции, используя intentRequest.sessionAttributes.seesionattributename в приведенном ниже коде и как показано ниже

function GetAuthors2(intentRequest,callback) {

    const token2 = String(intentRequest.sessionAttributes.token);
    const communityid2 = String(intentRequest.sessionAttributes.communityid);

    // --------- http  start ---------
    var options = {
        hostname: 'kf6-stage.rit.albany.edu',
        port: 443,
        path: '/api/communities/'+communityid2+'/authors',

        headers: {
            'Content-Type' : "application/json",
            'Authorization' : "bearer " + token2
        }
    };

    https.get(options, (resp) => {
        console.log("#in Http");
        let data2 = '';

        // A chunk of data has been recieved.
        resp.on('data', (chunk) => {
            data2 += chunk;
        });

        // The whole response has been received. Print out the result.
        resp.on('end', () => {
            var data_2 = JSON.parse(data2);
            const cList2 = [];
            data_2.forEach(function(i){
                cList2.push(i.firstName);

            });



            callback(close(intentRequest.sessionAttributes, 'Fulfilled',
                {
                    contentType: "PlainText or SSML",
                    content: "Hi,You have "+cList2.length+" authors registered Bharghav. Here is the list \n"+ cList2.join()


                }
            ));


        });


    });



}

но после запроса о намерениях я получаю следующий ответ: «Извините, я не смог обработать ваше сообщение. Повторите попытку позже.»

Если я жестко закодировал значения в лямбда-выражении Функция работает нормально.

Может ли кто-нибудь любезно сказать мне, где я делаю неправильно при доступе к атрибутам сеанса ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...