npm 包 ask-sdk-runtime 使用教程

阅读时长 6 分钟读完

前言

广义上的前端,指的是运行在用户设备(像电脑、移动端)上的应用程序,提供用户与后端服务进行交互的界面和功能。在这些应用程序中,语音交互成为了近几年非常热门的话题。Alexa 是亚马逊的智能语音助手,针对其语音应用程序开发,官方提供了 ask-sdk for Node.js 的 npm 包,本文将介绍如何使用其中的 ask-sdk-runtime。

安装与引入

在使用 npm 进行包管理的前提下,使用以下指令可以安装 ask-sdk-runtime 包

在项目中引入

基本概念

  • Handler:通过 Request、Response 对象处理请求、响应,处理函数就被称作 Handler
  • Request:Alexa Skill 发出的请求
  • Response:返回给 Alexa 的相应
  • Skill Builder:提供 ErrorHandler、Request Interceptor、Response Interceptor、Handler Interceptor 等等各种方法的构建器,适用于构建较为复杂的 Skill
  • Standard Skill Builder:提供大量的默认配置,适用于较为简单的 Skill

基本操作

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

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

上面的代码演示了创建一个返回 Hello World! 的 Skill,并将其发布到 lambda 后台。其中,HelloHandler 为 Handler 的实例,canHandle 方法定义操作条件(判断请求是否为想要操作的类型),handle 方法则是实际执行的操作。在 Skill Builder 中,通过 addRequestHandlers 方法将 Handler 实例对象注册到 Skill Builder 实例下,最后通过 lambda 方法发布到后台。以 Alexa Skill 开发为例,可以用以下代码进行 endpoint 的注册:

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

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

其中的 requestHandlers 可以是一个数组,包含所有的 Handler 实例。

Skill Builder 的配置参数

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

结语

本文简要介绍了如何在 Alexa Skill 开发中使用 ask-sdk-runtime 进行 Handler 的实现与 Skill 的注册。需要注意的是,遵循语音应用的规范,应该在 Handler 中提前返回权限不足等情况的 Response。

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

纠错
反馈