2

是否有可能调用一个可以回问并接收答案的 Web 服务?

让我解释一下:在家里,我有一个媒体中心,上面放着一些电影。当然,它的内容会随着时间而变化:文件被添加、删除、重命名等等。

现在我想说“嘿谷歌,玩绿野仙踪”,然后绿野仙踪应该在我的电视上播放。

因为我知道如何在 .NET 中开发东西,所以在家中运行的 Web 服务已经存在并且运行良好,电影开始了。我想感谢 API.ai,我应该能够通过 webhook 功能将它连接到 Google Home。

但是如果有多个结果,我想问,应该选择哪个结果呢?例如:

  1. 用户说“玩星球大战”
  2. Google Home 调用我的网络服务,它检查我的磁盘并发现有多个星球大战电影。
  3. 现在,需要询问用户“有多个结果。您想看哪一个?星球大战:新希望,星球大战:帝国反击,......”
  4. 用户现在回答“星球大战:新希望”
  5. Google Home 再次使用该信息调用网络服务,并在成功后回复“好的,玩星球大战:新希望”。

我还没有发现如何使用 API.ai 做到这一点。据我了解,API.ai 使用一些参数 (JSON) 调用 Web 服务,将从 Web 服务接收到的响应文本发送回 Google Home,然后就结束了。

还是我错过了什么?你们知道我如何实现这种情况吗?

或者我们能否以某种方式开发我们的私人服务,例如 Google Home 应用程序中列出的服务(Akinator、Dominos、CNBC ......),还是只有作为合作伙伴才有可能?实际上会很好。

提前致谢!

4

2 回答 2

2

您需要学习 API、api.ai webhook 请求/响应格式并实现它。看看这个教程。然后,当然,您必须在防火墙上戳一个洞才能接收来自 Google 的呼叫或使用ngrokBST 代理

于 2016-12-29T04:33:09.993 回答
2

据我了解,API.ai 使用一些参数 (JSON) 调用 Web 服务,将从 Web 服务接收到的响应文本发送回 Google Home,然后就结束了。

除非您从 Web 服务发送,否则该机器人仍处于控制之中:

data: {
  google: {
   expect_user_response: false,
 }
}

或在意图窗格中的 API.AI 中选中此框

enter image description here

If you are using the ActionsSDKAssistant, make sure that you are using the right method. Ask vs. Tell

https://developers.google.com/actions/reference/ActionsSdkAssistant#ask https://developers.google.com/actions/reference/ActionsSdkAssistant#tell

于 2016-12-29T19:00:55.203 回答