【问题标题】:how to respond to user using google assistant after the conversation is ended?对话结束后如何使用谷歌助手回复用户?
【发布时间】:2018-02-07 11:40:17
【问题描述】:
【问题讨论】:
标签:
actions-on-google
dialogflow-es
google-assistant-sdk
【解决方案1】:
你的意思是通知。您可以使用它,但请注意您提供的链接顶部的警告:“更新和通知目前处于开发者预览版中。您可以使用本文中描述的功能构建应用程序,但您目前无法发布它们”。
关于创建每日通知的步骤:
- 导航到您的 actions.intent.CONFIGURE_UPDATES 意图。
-
在 Responses 下,转到 Google Assistant 标签,点击 Add Message Content,然后选择 Custom Payload。
- 在“自定义负载”框中,添加以下代码以调用 AskToRegisterDailyUpdate 帮助程序。将 INTENT_NAME 交换为您希望在用户与您的通知交互时调用的意图。
{
"google": {
"system_intent": {
"intent": "actions.intent.REGISTER_UPDATE",
"data": {"@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec",
"intent": "INTENT_NAME",
"triggerContext": {
"timeContext": { "frequency": "DAILY" }
}
}
}
}
}
-
如果使用 webhook,您可以通过客户端库直接调用此 API:
appMap.set('setup_update', function(app) {
app.askToRegisterDailyUpdate('INTENT_NAME');
})
})
再添加一个名为“finish_update_setup”的意图并输入 actions_intent_REGISTER_UPDATE 作为其事件。
也将 Intent 的 Action 设置为“finish_update_setup”。
-
在您的 webhook 中,打开 index.js 并添加以下内容。替换 好的,我会开始给你每日更新,好的,我不会给你每日更新。无论您想给用户什么回应:
appMap.set('finish_update_setup', function(app)) {
if (app.isUpdateRegistered()) {
app.tell("Ok, I'll start giving you daily updates.");
} else {
app.tell("Ok, I won't give you daily updates.");
}
}
将 webhook 部署到 Firebase Functions 并在 Dialogflow 中启用 webhook。
如果您想了解如何创建一个简单的通知(不是每天一个)- 请查看push notifications 上的此文档。
【解决方案2】:
如果您没有立即回复但希望很快收到回复,您所做的就是返回“承诺”。当您可以回复时,“履行”承诺会导致您的回复被送达。我不知道实际的超时时间是多少,但就我而言,我很确定至少允许延迟几秒钟。
至于更新或通知,API 在那里,但文档说您不能使用它们将操作部署到生产环境。如果您需要,“联系支持”有一条略显神秘的评论。
这些天我可能会尝试。