如何在本地开发 google 动作?

How to develop google actions locally?

我的问题对你来说可能听起来很基础或蹩脚,但我对此真的没有经验。我对 Google Actions 很陌生,对 Javascript 不太了解。我的问题是如何在不使用提供的在线编辑器 google 的情况下开发 Google 动作?你能一步步给我讲讲吗?我尝试让自己参加 codelab 练习,希望这对我有帮助,但在 codelab 练习中,已经有一堆我从 github 克隆的代码,这就是我用来使它全部工作的代码。但是现在我想为我们的真实项目编写代码,我不知道如何从头开始。我知道如何创建代理和其他东西……但我不知道如何在本地开发。请帮我。这是我们的论文。

  • 下载NGROK
  • 下载 NODEJS
  • 在 NodeJS 上使用 Express 开发本地 webhook
  • 使用 NGROK 将此本地 webhook 公开到互联网
  • 使用生成的 NGROK URL 作为 Dialogflow 代理的实现。
  • 将 Google Assistant 与 Dialogflow 集成并进行测试。

这里是tutorial开头

如果您遵循 Build Actions for the Google Assistant (Level 2) codelab, you'll see that it talks about setting up for local development in step 3 使用 Firebase 云函数。如果您向下滚动到该页面上的第 4 部分,以下内容将替换第 4 部分中的某些内容。

与其建议输入 firebase deploy,不如 输入

firebase serve --only functions

这样做的目的是,您 运行 在模拟 Firebase Cloud Function 配置的环境中将代码本地化,而不是将代码发送到服务器。它将显示本地主机上可用的完整路径。如果您的函数名为 "webhook",它将显示如下内容:

functions: webhook: http://localhost:5000/your-project/us-central1/webhook

现在,您可以在另一个 window 中使用 ngrok 命令,例如

ngrok http 5000

和 window 将显示作为外部点的 URL 和主机名。所以它可能是这样的:

forwarding https://8ba32042.ngrok.io -> localhost:5000

您可以将这两者结合起来,使 URL 您应该用作 fulfillment webhook URL。使用我们的示例,它将类似于

https://8ba32042.ngrok.io/your-project/us-central1/webhook

您将放入 Dialogflow fulfillment URL 设置中。

然后,当您更改代码中的内容并使用 ngrok 控制台检查请求和响应时,您可以停止和启动本地 firebase 托管。如果您曾经停止过 ngrok 命令行,当您再次启动它时,您将获得一个新的主机名,并且您还需要在 Dialogflow 中更改它。