首页 > 解决方案 > Actions-on-Google SDK:无需注册处理程序即可响应

问题描述

我正在为 Google Home 和 Google 助手开发一个应用程序。

我使用 express 作为 web 服务器来完成。在大多数情况下,我手动检查请求以决定响应什么并手动发送 JSON 作为快速响应。在某些情况下,我使用如下设置的 actions-on-google SDK 来发送回复。

const { DialogflowApp } = require("actions-on-google");
const assistant = new DialogflowApp({
    request: request,
    response: responseToAssistant
});

在 1.11 版的 actions-on-google SDK 中,我还可以assistant.tell('Thanks for talking to me!');用来发送响应(而不是手动 JSON)。

我现在已经更新到 2.2 版。但是,在这个版本中,我似乎必须为所有意图注册处理程序,才能使用 actions-on-google SDK 来发送响应。

app.intent('Default Welcome Intent', conv => { // (registering intent)
  conv.close('Thanks for talking to me!'); 
});

但是为此,我将不得不重组整个项目。是否仍然可以手动检查请求(无需注册所有意图处理程序)并使用 actions-on-google SDK 发送响应?

标签: javascriptnodesactions-on-googledialogflow-es

解决方案


您可以设置一个处理程序,当其他已注册的处理程序都不会被触发时,该处理程序将被调用。您的代码将是这样的:

app.fallback(conv => {
  conv.ask("Everything else is handled here!");
});

如果你想在这些情况下设置原始 JSON,你应该能够conf.json()使用你想设置的 JSON 调用方法。


推荐阅读