【问题标题】:Link lambda function to alexa skill kit将 lambda 函数链接到 Alexa 技能包
【发布时间】:2018-02-14 12:04:36
【问题描述】:

您好,我创建了一个 lambda 函数,它可以使用主键从我的 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;

它工作正常,但现在我想做的是将它设置为与 alexa 一起使用,这样我就可以让 alexa 查询我的表

谁能帮助我如何做到这一点?我创建了一项技能并将其全部链接,但不知道如何做我的交互模型

谢谢

这是我的意图架构

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

【问题讨论】:

    标签: amazon-web-services aws-lambda alexa alexa-skills-kit


    【解决方案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

    【讨论】:

    • 您好,感谢您的回复。我已经这样做了;我卡住的地方是如何编写由 Alexa 技能包触发的功能。
    • @zuba 我添加了一个显示示例代码的 GitHub 链接
    • 谢谢你,我会看看它,看看它是怎么回事
    • 我正在努力让 alexa 触发我的 lambda 函数,我需要在 lambda 函数中包含任何代码吗?我不断收到响应无效
    • @zuba 你想删除你的 Skype ID 吗?本周末将共享屏幕和工作
    猜你喜欢
    • 2017-10-19
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    相关资源
    最近更新 更多