dialogflow-es - 对话开始回调

标签 dialogflow-es actions-on-google

当我开始一个 Action 时:

OK Google talk To My Assistant



它验证并运行欢迎意图,该意图加载可用于 API.AI 后续问题的用户实体

当我尝试开始一个 Action 时:

OK Google ask My Assistant some question



它进行身份验证,但我无法加载用户实体,因为我没有 session 的 sessionID。

当 API.AI 尝试评估某个问题时,它无法评估,因为尚未加载用户实体。

似乎唯一的选择是 SlotFilling WebHook ......但如果我可以选择定义用户实体,我真的不需要这个(或它需要的复杂性)。

在向 API.AI 发出第一个请求之前,有什么方法可以获取 API.AI sessionID(由 Google Actions 定义)?或者在 API.AI 尝试评估某个问题之前获取包含 sessionID 的某个 WebHook 的任何其他方法?

最佳答案

好吧,我找到了解决方案。
我为所有深层链接问题放置了一个名为“EntitiesLoaded”的输入上下文。
然后当我发出:

OK Google ask My Assistant some question



它称为回退意图。
在后备意图中,我执行以下操作:
  • 加载用户实体
  • 设置“EntitiesLoaded”上下文。
  • 重新发出原始查询(已传递到回退范围)。这一次它会起作用。
  • 关于dialogflow-es - 对话开始回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43416900/

    相关文章:

    dialogflow-es - Dialogflow 并直接从 fulfillment inline editor 调用 intent 而无需再次询问用户

    dialogflow-es - 更改 DialogFlow 机器人中的日/月语言

    dialogflow-es - actions-on-google-dialogflow-session-entities-plugin 在dialogflow的内联编辑器中不起作用

    node.js - 如何在 Dialogflow v1 中跨多个意图(超过 2 个)传递值

    internationalization - 对 Google 国际化的操作

    dialogflow-es - 错误 : Dialogflow server in 'us' received request for resources located in 'europe-west2-dialogflow.googleapis.com.'

    node.js - Fulfillment 中的 DialogFlow - DeepLink 未定义

    dialogflow-es - 从谷歌上的操作中注销用户

    node.js - Dialogflow v1 webhook - 异步调用后语音未立即返回

    dialogflow-es - Dialogflow 内联编辑器要求提供附加信息