如果你正在寻找一种快速创建 Google Assistant 的方法,那么 actions-on-google
就是你需要的 npm 包。这个包使我们的工作变得更容易,因为它简化了加载和处理来自谷歌助手的信息,并提供了一套流畅的语音互动界面。
什么是 actions-on-google?
actions-on-google
是一个 npm 包,用于开发自定义谷歌助手应用程序。它可以轻松集成 Google Assistant 平台,并使用谷歌的 API 进行交互,从而创建自定义响应,包括文字、卡片和语音响应。
安装 actions-on-google
安装 actions-on-google
只需要一行代码:
npm install actions-on-google
创建谷歌助手 app
现在我们已经安装了 actions-on-google,让我们来创建一个简单的应用程序,该应用可以使用谷歌助手读出明日的天气情况。
-- -------------------- ---- ------- ----- - ---------- - - ---------------------------- ----- --- - ------------ -- ---------- -- --------- ---------------- -- ----------------------------- ------ -- - -------------------- -- --------- --- --- --- ------------------------------ ------ - ------- -- -- - ------------------ ------------ -- ---------------- ------ -- - -------------------- ------------------------------ -- -------------- - ---
我们首先使用 dialogflow
函数创建谷歌助手应用程序,并指定应用程序 ID。我们接下来注册了一个意图 ask_for_weather
,该意图在用户询问天气时被触发,并在回答用户之前询问天气预报。最后,我们注册了一个 weather_response
意图,该意图在成功查询天气后更新用户。如果出现错误,则 catch
将提供一个恢复错误的响应。
添加天气 API
让我们替换注释 // 这里添加天气查询 API 的代码
的代码。我们将使用 OpenWeatherMap 的天气 API。
-- -------------------- ---- ------- ----- ----- - ------------------------ ----------------------------- ------ -- - -------------------- ---------------------------------------------------------------------------------------- -------------- -- - ----- ------- - ------------------------------------ ------------ ---------------- ------- --- ------------ ----- --- - - ------- --- ------------------------------ ------ -- - ------------------ ------------ -- -- ---------- -- - ------------------------ -- --
我们首先 require axios
库,使用 axios.get()
获取天气预报。我们从 API 响应中获取天气信息,并向用户发出响应,以便我们可以省略显式地生成消息。最后,我们注册 "weather_response"
意图,以便我们可以在 Cloud Functions 控制台中测试整个流程。
创建完毕后,你应该在 Google Assistant 应用程序中看到你的应用程序。现在,你只需要说“明天的天气怎么样?”,它就会读出明天的天气状况。
总结
在本教程中,我们学习了如何使用 actions-on-google
通过 API 创建自定义谷歌助手应用。我们加载和处理来自谷歌助手的信息,并提供了一套流畅的语音互动界面。通过这种方法,我们可以使我们的工作变得更容易。
在创建自己的应用之前,请仔细阅读 actions-on-google 文档,以获得更多技术细节和使用指南。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb6eeb5cbfe1ea061168d