Свяжите лямбда-функцию с набором навыков alexa

Привет, я создал лямбда-функцию, которая может вызывать элементы из моей таблицы Dynamodb с использованием первичного ключа.

вот код, который у меня есть

'use strict';

var AWS = require('aws-sdk');
var dclient = new AWS.DynamoDB.DocumentClient();

var getItems = (event, context, callback)=>{
    
    dclient.get(event.params,(error,data)=>{
        if(error){
            callback(null,"error occurerd");
        }
        else{
            callback(null,data);
        }
    });
};

exports.getItems = getItems;
//exportshandelrhandlergetItems = getItems;

он работает нормально, но теперь я хочу настроить его для работы с Алексой, чтобы я мог попросить Алексе запросить мою таблицу

кто-нибудь может мне помочь, как это сделать? ive создал навык и связал все это, но не знаю, как реализовать мою модель взаимодействия

Благодарность

вот моя схема намерений

{
  "intents": [
    {
      "intent": "date"
    },
    {
      "intent": "AMAZON.CancelIntent"
    },
    {
      "intent": "AMAZON.HelpIntent"
    },
    {
      "intent": "AMAZON.StopIntent"
    },
    {
      "intent": "Cinema"
    },
    {
      "intent": "MyIntent"
    }
  ]
}


person zuba    schedule 14.02.2018    source источник


Ответы (1)


Пожалуйста, следуйте инструкциям ниже,

  1. перейдите на https://developer.amazon.com/
  2. Войдите в свою учетную запись
  3. Нажмите на Alexa
  4. Нажмите "Добавить новые навыки".
  5. Заполните разделы «Информация о навыках» и «Модель взаимодействия».
  6. В разделе «Конфигурация» упоминается Lambda ARN, как показано ниже:

введите здесь описание изображения

Скопируйте приведенный ниже код как таковой в свою функцию Lambda и просто скажите: «Откройте« ВАШЕ НАЗВАНИЕ », и Alexa должен ответить:« Добро пожаловать в мир Alexa ».

exports.handler = (event, context, callback) => {
    try {

        var request = event.request;

        if (request.type === "LaunchRequest") {
            context.succeed(buildResponse({
                speechText: "Welcome to the world of Alexa",
                repromptText: "I repeat, Welcome to the world of Alexa",
                endSession: false
            }));
        }


        else if (request.type === "SessionEndedRequest") {
            options.endSession = true;
            context.succeed();
        }
        else {
            context.fail("Unknown Intent type")
        }



    } catch (e) {

    }


};

function buildResponse(options) {
    var response = {
        version: "1.0",
        response: {
            outputSpeech: {
                "type": "SSML",
                "ssml": `<speak><prosody rate="slow">${options.speechText}</prosody></speak>`
            },

            shouldEndSession: options.endSession
        }
    };

    if (options.repromptText) {
        response.response.reprompt = {
            outputSpeech: {
                "type": "SSML",
                "ssml": `<speak><prosody rate="slow">${options.repromptText}</prosody></speak>`
            }
        };
    }

    return response;
}

Пожалуйста, найдите один образец в моем GitHub (без использования Alexa SDK),

https://github.com/vnathv/alexa-myfortune/blob/master/MyFortune/Index.js

person Vijayanath Viswanathan    schedule 14.02.2018
comment
Привет, спасибо за ответ. Я уже это сделал; где я застрял, так это то, как запрограммировать мою функцию, чтобы она запускалась с помощью набора навыков Alexa. - person zuba; 14.02.2018
comment
@zuba Я добавил ссылку на GitHub, в которой показан пример кода. - person Vijayanath Viswanathan; 14.02.2018
comment
спасибо, я посмотрю на это и посмотрю, как оно идет - person zuba; 14.02.2018
comment
Я изо всех сил пытаюсь заставить alexa вызвать мою лямбда-функцию, нужно ли мне включать какой-либо код в лямбда-функцию? я продолжаю получать ответ недействительный - person zuba; 15.02.2018
comment
@zuba Вы хотите сбросить свой Skype Id? Покажу скрин и поработаю в эти выходные - person Vijayanath Viswanathan; 16.02.2018
comment
Да, пожалуйста, это было бы большой помощью. Я доступен в любое время в выходные в удобное для вас время, мой скайп - zuhaibahmed96. - person zuba; 16.02.2018
comment
Привет, ты свободен сегодня в любое время? - person zuba; 18.02.2018
comment
ааа, мне очень жаль. Я совсем забыл об этом :(. Позвольте мне добавить вас сегодня - person Vijayanath Viswanathan; 19.02.2018
comment
это нормально, не волнуйся, надеюсь, ты сможешь найти время в течение дня - person zuba; 19.02.2018
comment
@zuba да, я постараюсь подключиться изо всех сил. Я нахожусь в часовом поясе Великобритании. значит, пока я обновил образец кода в ответ. Скопируйте код как таковой и попробуйте. Я скопировал это из одного из моих приложений alexa в производстве - person Vijayanath Viswanathan; 19.02.2018
comment
спасибо, я тоже в Великобритании. Я попробую сейчас и посмотрю, что я могу сделать. Я ценю вашу помощь. - person zuba; 19.02.2018
comment
@zuba, если это не работает, поделитесь схемой намерений и примерами высказываний - person Vijayanath Viswanathan; 19.02.2018
comment
Я попытаюсь сделать это сейчас и расскажу вам, что мне нужно добавить к моей лямбда-функции? У меня уже есть связь с лямбда-функцией и навыком alexa - person zuba; 19.02.2018
comment
вам нужно построить ответ в соответствии с ответом Alexa. Вот что делает buildReponse моего примера кода. Просто чтобы приветствовать, что код должен работать, если ваша схема намерений верна. - person Vijayanath Viswanathan; 19.02.2018
comment
Я добавил свою схему намерений в ветку. Я считаю, что где я ошибаюсь, это моя лямбда-функция. - person zuba; 19.02.2018
comment
хм, погляжу при подключении к скайпу. Я уверен, что что-то простое сделать - person Vijayanath Viswanathan; 19.02.2018
comment
ive удалось заставить Алексе вернуться с «Добро пожаловать в мир Алексы», когда я попросил раскрыть мой навык; как мне теперь приступить к реализации моего лямбда-кода для моих навыков? - person zuba; 19.02.2018
comment
Спасибо сделаю. Мой предыдущий код выводил то, что я искал в своей лямбда-функции. Не могли бы вы помочь реализовать это в новом коде для вывода ответа через alexa? - person zuba; 19.02.2018
comment
Можете ли вы заархивировать свой код и прикрепить его к диску? Также вы подключаетесь к DynamoDB? - person Vijayanath Viswanathan; 19.02.2018
comment
да, я продолжу и сделаю это сейчас, и да, мой навык лямбда извлекает данные из моей таблицы Dynamodb с использованием первичного ключа, хотя я намерен запрашивать другие части моей таблицы - person zuba; 19.02.2018
comment
вы можете получить доступ к папке? - person zuba; 19.02.2018
comment
привет, ты все еще можешь помочь с моими навыками? - person zuba; 20.02.2018
comment
привет да, я все еще могу вам помочь. У меня напряженный офисный график. Вы не возражаете, если я поработаю с вами один на один через несколько дней? Тем временем я создам образец кода, который подключается к DynamoDB. - person Vijayanath Viswanathan; 20.02.2018
comment
ааа, я думаю, что отправил образец кода на другой вопрос, который вы задали. Вы хотите, чтобы ответ был здесь? - person Vijayanath Viswanathan; 20.02.2018
comment
это нормально, я уже посмотрел. Я понимаю, это нормально, я продолжаю, пока не освободишься - person zuba; 20.02.2018
comment
да, извините, я исправил это сейчас, я не осознавал, что мне пришлось изменить свой лямбда-код для работы с Alexa. Но что касается подключения к Alexa, вы решили эту проблему. - person zuba; 20.02.2018