【问题标题】:how to respond to user using google assistant after the conversation is ended?对话结束后如何使用谷歌助手回复用户?
【发布时间】:2018-02-07 11:40:17
【问题描述】:

我正在做一个谷歌操作。我有一个场景,计算需要一些时间来完成云计算,但我不想让用户等待答案。 我想在我的答案准备好时回复用户,即使与用户的对话结束我想以通知或类似的方式发送我的答案。

我刚刚在 google 操作文档中找到了这个。 https://developers.google.com/actions/assistant/updates

这在谷歌操作中是否可行?如何实现?

【问题讨论】:

    标签: actions-on-google dialogflow-es google-assistant-sdk


    【解决方案1】:

    你的意思是通知。您可以使用它,但请注意您提供的链接顶部的警告:“更新和通知目前处于开发者预览版中。您可以使用本文中描述的功能构建应用程序,但您目前无法发布它们”。

    关于创建每日通知的步骤:

    1. 导航到您的 actions.intent.CONFIGURE_UPDATES 意图。
    2. 在 Responses 下,转到 Google Assistant 标签,点击 Add Message Content,然后选择 Custom Payload。

      1. 在“自定义负载”框中,添加以下代码以调用 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" }
          }
        }
      }
      

      } }

      1. 如果使用 webhook,您可以通过客户端库直接调用此 API:

        appMap.set('setup_update', function(app) { 
          app.askToRegisterDailyUpdate('INTENT_NAME'); 
        })
        

        })

      2. 再添加一个名为“finish_update_setup”的意图并输入 actions_intent_REGISTER_UPDATE 作为其事件。

      3. 也将 Intent 的 Action 设置为“finish_update_setup”。

      4. 在您的 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.");
          }
        }
        
      5. 将 webhook 部署到 Firebase Functions 并在 Dialogflow 中启用 webhook。

    如果您想了解如何创建一个简单的通知(不是每天一个)- 请查看push notifications 上的此文档。

    【讨论】:

      【解决方案2】:

      如果您没有立即回复但希望很快收到回复,您所做的就是返回“承诺”。当您可以回复时,“履行”承诺会导致您的回复被送达。我不知道实际的超时时间是多少,但就我而言,我很确定至少允许延迟几秒钟。

      至于更新或通知,API 在那里,但文档说您不能使用它们将操作部署到生产环境。如果您需要,“联系支持”有一条略显神秘的评论。

      这些天我可能会尝试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-21
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多