使用 generator-alexa-sdk-skill 构建 Alexa 技能

阅读时长 7 分钟读完

作为前端开发者,我们经常需要构建应用程序并发布到生产环境当中。而在开发 Alexa 技能时,我们需要使用 AWS Lambda 服务,以接收 Alexa Skill Kit 的请求并响应相应的内容。因此,我们需要具备一定的 AWS Lambda 知识,以及构建和部署的技能。

随着 npm 包管理器的普及,我们不再需要手动管理项目依赖项并为每个项目重复设置构建过程。在本文中,我们将介绍如何使用 npm 包 generator-alexa-sdk-skill 搭建一个完整的 Alexa 技能。

什么是 generator-alexa-sdk-skill?

generator-alexa-sdk-skill 是一个基于 Yeoman 的 npm 包,用于生成基础的 Alexa 技能项目结构。它使用 Alexa Skills Kit SDK for Node.js,为我们提供了构建服务器端逻辑的框架。generator-alexa-sdk-skill 包含以下组件:

  • Alexa Skills Kit SDK for Node.js
  • AWS SDK for Node.js
  • AWS Lambda Handler

通过使用 generator-alexa-sdk-skill,我们可以快速搭建一个具有可扩展性的 Alexa 技能应用程序。

快速开始

安装 Yeoman

使用 npm 注册 Yeoman:

安装 generator-alexa-sdk-skill

使用 npm 注册 generator-alexa-sdk-skill:

生成 Alexa 技能应用程序

  1. 创建一个项目文件夹并切换到该文件夹。
  1. 执行 generator-alexa-sdk-skill。
  1. 在提示中输入应用程序名称、Alexa 技能 ID 和 AWS Lamdba 函数名称。如果创建成功,将在当前文件夹中生成基础项目结构。

集成 Alexa 开发者控制台

项目结构已经准备完毕,现在让我们将技能应用程序部署到 AWS Lambda 并集成到 Alexa 开发者控制台中。

  1. Alexa 开发者控制台 中创建一个新的技能。

  2. 配置技能的详情页面。在“Skill builder checklist”下找到“Endpoint”并单击“HTTPS”。

  3. 新窗口中打开 AWS Lambda 控制台。 在函数列表中,找到之前使用 generator-alexa-sdk-skill 生成的 Lambda 函数,并复制其 ARN。

  4. 返回 Alexa 开发者控制台,将 AWS Lambda ARN 粘贴到“Default Region”输入框中。此时,我们的 Alexa 技能应用程序就已经可以响应用户的语音指令了。

添加更多功能

通过程序节点执行功能非常有限。在 Alexa 技能开发过程中,我们可以通过使用 Alexa SDK 的简单语法来实现更多功能。

意图(Intent)

Intent 是语音应用程序的一个关键概念,指定用户可能要执行的操作,例如“打开应用程序”或“查找电影”。在 Alexa 技能应用程序中,我们可以在“intents”目录中编写自定义 Intent。

会话(Session)

在开发 Alexa 技能时,会话是一个常用的概念。会话可用于在不同意图之间传递上下文和状态信息。我们可以在“handlers”目录中通过使用 Alexa SDK 中的 session 来管理会话。

-- -------------------- ---- -------
-- ---------------------
-------------- - -
  ----------------------- -
    ------ ----------------------------------------- --- ---------------
  --
  -------------------- -
    ----- ---------- - ----------------------------------------
      - -----------------
      - -------------------

    ------ ----------------------------
      ------------------
      ---------------------
      --------------
  -
-

响应(Response)

在 Alexa 技能应用程序中,我们可以使用 responseBuilder 来生成响应,并通过使用灵活的 Node.js 语法来管理响应。

-- -------------------- ---- -------
-- ---------------------
-------------- - -
  ----------------------- -
    ------ ----------------------------------------- --- ---------------
  --
  -------------------- -
    ----- ---------- - -------------

    ------ ----------------------------
      ------------------
      ------------------------- -----------
      --------------
  -
-

结论

通过使用 generator-alexa-sdk-skill 和 Alexa Skills Kit SDK for Node.js,我们可以快速搭建一个具有可扩展性的 Alexa 技能应用程序,为用户提供基于语音的新型用户体验。在开发过程中,我们可以添加更多的功能,例如 Intent、Session 和 Response,以响应用户的不同需求。希望本文对读者有所启发并提供指导意义。

示例代码

Intents

Handlers

-- -------------------- ---- -------
-- ---------------------
-------------- - -
  ----------------------- -
    ------ ----------------------------------------- --- ---------------
  --
  -------------------- -
    ----- ---------- - ----------------------------------------
      - -----------------
      - -------------------

    ------ ----------------------------
      ------------------
      ---------------------
      --------------
  -
-

-- ---------------------
-------------- - -
  ----------------------- -
    ------ ----------------------------------------- --- ---------------
  --
  -------------------- -
    ----- ---------- - -------------

    ------ ----------------------------
      ------------------
      ------------------------- -----------
      --------------
  -
-

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056be481e8991b448e599e

纠错
反馈