会话结束后如何使用谷歌助手回复用户?

时间:2018-02-07 11:40:17

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

我正在制作谷歌行动。我有一个场景,计算需要一些时间来实现云,但我不想让用户等待回答。 即使与用户的对话结束,我想在我的答案准备就绪时回复用户我想在通知中发送我的答案或类似的东西。

我刚在谷歌行动文件中找到了这个。 https://developers.google.com/actions/assistant/updates

这可能是谷歌行动以及如何?

2 个答案:

答案 0 :(得分:2)

这里的意思是通知。您可以使用它,但请注意您提供的链接顶部的警告:"更新和通知目前在开发者预览版中。您可以使用本文中介绍的功能构建应用,但目前无法发布这些功能"。

至于打包日常通知的步骤:

  1. 导航到您的actions.intent.CONFIGURE_UPDATES intent。
  2. 在“回复”下,转到“Google智能助理”标签,点击“添加消息内容”,然后选择“自定义有效负载”。

    1. 在"自定义有效负载"框,添加以下代码以调用AskToRegisterDailyUpdate帮助程序。将INTENT_NAME交换为您希望在用户与您的通知进行互动时调用的意图。
    2. {

      "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. 将意图的动作设置为" 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功能并在Dialogflow中启用webhook实现。

      如果您想了解如何创建简单通知(而非每日通知) - 请在push notifications上查看此文档。

答案 1 :(得分:-2)

如果你没有立即回复发送,但是很快就会发现你所做的就是返回"承诺"。当您有能力回复时,"履行"承诺会导致您的回复被送达。我不知道实际的超时是多少,但在我的情况下,我非常确定至少允许几秒延迟。

对于更新或通知,API就在那里,但文档说您无法使用它们将Action部署到生产中。对#34;联系支持"有一点点含糊其辞的评论。如果你需要它们。

有一天我可能会尝试。