actions-on-google - 如何从ApiAiApp或ActionsSdkApp获取conversationId?

标签 actions-on-google api-ai

我尝试在ApiAiApp和ActionsSdkApp的文档中找到,它们没有属性或函数来获取conversationId。我可以从 JSON 请求中看到这一点。我是否必须自己解析请求才能获取conversationId? sessionId应该是常用的。

最佳答案

虽然没有记录,但有一个 getConversationId()ActionsSdkApp 对象的一部分,但不是 ApiAiApp 对象。但是,如果您使用 Node.js(如果您使用该库,您就会使用 Node.js),那么处理 JSON 对象也应该很容易。对于 API.AI,您应该在 originalRequest.data.conversation.conversationId 中找到它。

但是请记住,对话没有“结束”事件。因此,虽然您会知道何时有新对话以及何时更新,但您不会知道用户何时停止该特定对话。

根据您的需要,您可能希望使用用户 ID 而不是对话 ID。它不提供有关对话何时结束的信息,但它可以在不同 session 和设备之间跟踪同一用户。

对于大多数用户(可能不是您的情况),conversationid 可能没有您想象的那么常用。虽然使用它作为在数据库或类似的东西中保存状态的 key 可能是有意义的,但让 Google 自己保存状态更容易。

您可以使用 app.setContext( name, lifespan,parametersObject ) method 将状态保存在 API.AI 的上下文中。 。下次通过时,您可以从 app.getContext() method 获取数据。 .

在 ActionsSdkApp 对象中,您可以使用 dialogState 对象执行等效操作,该对象是大多数类似 Ask 的方法(例如 app.ask() method )。然后,您可以通过 app.getDialogState() method 进行下次调用。 。 (此页面还讨论了可用于相同用途的 app.data 字段,但我找不到更多有关它的文档。)

关于actions-on-google - 如何从ApiAiApp或ActionsSdkApp获取conversationId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45227595/

相关文章:

node.js - Dialogflow - Google 助理 : setFollowupEvent after showing a message

c# - 在 .net 中部署 Actions on Google 服务

actions-on-google - 如何通过智能家居应用程序的实时提要报告设备上的状态变化?

actions-on-google - API.ai Actions on Google - 获取 Google Home 已知的当前属性,例如天气、位置

node.js - 如果选择后没有立即进行轮播,则不会触发选择意图

python - JWT 从断言解码 - Google 登录

node.js - 通过 api.ai 5 秒后提供服务到接口(interface)的响应

javascript - React 组件在没有事件的情况下不会呈现

node.js - 使用 Amazon SES 服务从 node.js 发送电子邮件不起作用

dialogflow-es - Google 操作 - 深层链接