连接 Angular、Nebular 和 Dialogflow 时的 dialogflowURL 是什么?

What is the dialogflowURL when connecting Angular, Nebular, and Dialogflow?

我正在关注 this tutorial,这是一个不错的开始,但遗漏了很多有关实施的细节。

组件打字稿文件的第 4 行如下:

const dialogflowURL = 'https://us-central1-fireship-lessons.cloudfunctions.net/dialogflowGateway';

对于我的项目 ID yalebot-n9xq,我认为准确的 URL 是:

https://dialogflow.googleapis.com/v2/projects/yalebot-n9xq/dialogflowGateway

但是,curl https://dialogflow.googleapis.com/v2/projects/yalebot-n9xq/dialogflowGateway 给出了 404 响应:

<p>The requested URL <code>/v2/projects/yalebot-n9xq/dialogflowGateway</code> was not found on this server.  
<ins>That’s all we know.</ins>

如果我的项目 ID 是 yalebot-n9xq,我应该使用什么URL?

  1. 我已经为欢迎意图启用了 webhook。
  2. 如果我不使用 angular 并在本地提供服务 (curl http://localhost:5000/yalebot-n9xq/us-central1/dialogflowGateway),我会从 dialogflow 获得所需的响应。
  3. ng serve 产生 http://localhost:4200/,但访问该站点或 /# 产生错误 'Cannot GET /',这就是为什么我认为我的错误在于输入正确的 URL.

答案是 Dialoflow 寻找外部 webhook。

this example中,const dialogflowURL = 'https://YOUR-CLOUDFUNCTION/dialogflowGateway';中的YOUR-CLOUDFUNCTION指的是外部的URL,可能是用ngroklite-server外部化的东西。

该示例适用于在 DialogFlow 实现选项卡下交叉列出的外部 URL。