介绍
在Google Assistant平台上开发应用程序可以是一项有趣且富有挑战性的工作。为了使这个过程更加简单,npm上有很多现成的模块可供选择。本文主要介绍如何使用 @manekinekko/google-actions-rxjs 这个npm包来创建响应Google Assistant用户请求的Webhook。
@manekinekko/google-actions-rxjs 提供了一个方便的方式来处理请求和生成响应,而不必太关注细节。
安装
在安装之前,请确保您的计算机已经有Node.js和npm。
使用npm进行安装:
npm install @manekinekko/google-actions-rxjs --save
基本使用
首先,让我们来看一下如何使用@manekinekko/google-actions-rxjs 生成一个最基本的响应:
-- -------------------- ---- ------- ----- - ----------- -------------- - - -------------------------------------------- ----- --- - ------------- ------------------------------ ---- -- - ------------ ---------------- ------- ------ -------- ----- ------ ------- ---- ---
上述代码实现了一个很简单的Intent,名为“HelloWorldIntent”。当用户说“Hi”时,就会调用这个Intent,并回复“Hello World!”。
在上面的代码中,我们使用 @manekinekko/google-actions-rxjs 的actionssdk()函数创建了一个应用程序的实例。这个实例将负责处理请求和生成响应。接着,我们使用其上的.intent()方法来定义我们的Intent。这里让我们使用 SimpleResponse 类来生成我们的响应,因为它相当简单且易于使用。
日志输出将类似于:
-- -------------------- ---- ------- - ------- - --------- --------------------------------------------------------------------------------- --------- -------- ----------- ---------------------- -- --------------- - ----------------- --------------------------------------------------------------------------------- ------- --------- -------------------- ----- ---------- - --------------- -- ------- ----------------------------------------- -- - -- --------- -- --------- ------------------- ------------ -- ------------ -------- -------- ---- --- ------------ -- --- --------- - --------------- -- ------- --------------------------------- -- - ------- ---------------------------------- -- -- ---------- - --------------- -- ------- --------------------------------- -- - ------- ---------------------------------- -- -- -------------------- -- --------------- -- ------- --------------------------------- -- - ------- ---------------------------------- -- -- -
注意,由于它是用Javascript实现的,所以我们必须提供响应类型和响应内容的详细信息。
StructuredResponse
然而,我们无法仅仅靠一个SimpleResponse来完善我们的响应。@manekinekko/google-actions-rxjs 提供了很多不同的响应类,其中StructuredResponse是最常用的类型之一。StructuredResponse类可以帮助我们生成更加复杂的响应(Prompt、BasicCard等等)。下面是一个使用StructuredResponse类的例子:
-- -------------------- ---- ------- ----- - ----------- --------------- ------------------- --------- - - -------------------------------------------- ----- --- - ------------- -------------------------- ---- -- - ------------ -------------------- ----- ----- -- - ---- --- --- ---- ------- --- ---------------- ------- --------- ---- -- --- ---- -- -- -- ---- ---- ------- ----- --------- ---- -- --- ---- -- -- -- ---- ---- ------ --- ----- --- ----------- ------ ------ -- --- ------ ----- ----- -- --- ------ ------ - ---- -------------- ------------------ ---------------------- -- -------- - ----------- ------- ------ ---- -------------- - -- ---- ---
在上述代码中,我们还可以看到prompt属性。提醒是一个用于控制字词的方式,它更像是一种对话,而不是一种静态文本。
实现一个类似扫描二维码的应用
下面是一个稍微复杂一些的例子,它将演示如何使用@manekinekko/google-actions-rxjs来实现一个类似扫描二维码的应用。
使用StructuredResponse类的例子:
-- -------------------- ---- ------- ----- - ----------- --------------- ------------------- ------ ----- -------- - - -------------------------------------------- ----- --- - ------------- ------------------------------ ---- -- - ------------ -------------------- ----- --------- -- --------- ------- --- ---------------- ------- ------ ---- -- ---- -- ----- -- --- --------- ----- ------ ---- -- ---- -- ----- -- --- -------- --- --------- --- ---------- ------ - --- ------- ---- -------------- ------------------ ------ -- ----- -------- --- --- ------- ---- -------------- ------------------ ------ -- ------ -------- --- --- ------- ---- -------------- ------------------ ------ -- ----- -------- -- - -- ---- ---
这里,我们使用了Image、List和Carousel这三种响应类型。使用这些类型,我们可以构建一个用于扫描二维码的交互式应用。
这个应用程序将展示一个实时相机视图,以及一个带有三张照片的Carousel,用于显示某个东西的不同视角。当用户发送'Hi'或是'Hello World'时,就会会调用这个Intent。应用程序将会返回一个带有图片的Carousel。
这里是一些可以在结构化响应中使用的类型和其所表示的意义:
- SimpleResponse 类: 可以用来显示一个对话框
- Image 类: 可以用来显示图片
- BasicCard 类: 可以用来显示一张卡片,包括标题,主体文本,一个按钮和一个图像
- List 类: 可以用来显示一个清单,通过仅显示文本列表做到这一点
- Carousel 类: 可以用来显示一个轮播,其中包含一个带有描述和一个按钮的图片
结论
通过使用@manekinekko/google-actions-rxjs,我们可以轻松地创建响应Google Assistant请求的Webhook。该npm包提供了一个好的处理请求和生成响应的方式,并大大节约了时间和努力。希望这篇文章能够使您更好地了解该包的使用,并帮助您实现无与伦比的Google Assistant应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bca967216659e244647