首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用google操作传递状态数据

使用google操作传递状态数据
EN

Stack Overflow用户
提问于 2017-05-03 06:59:19
回答 2查看 805关注 0票数 0

我正在为谷歌主页开发一个使用api.ai的谷歌行动项目。

是否可以将状态参数作为响应的一部分传递给api.ai,并将其包含在下一个请求中?

Amazon Alexa API处理这样的流,它派上了用场。

谢谢

编辑:

我之前没有提到这一点:我让api.ai在谷歌助手触发我的意图后向一个webhook发送请求。api.ai期望的响应是defined here。我尝试在响应中包含额外的字段,但这些字段不会包含在api.ai未来的任何意图请求中。我还尝试将字段和值添加到响应的谷歌特定部分(defined here),但无济于事。

作为我感兴趣的一个例子,当响应Alexa请求时,我们可以包括一个json字段"sessionAttributes“,然后亚马逊会在任何未来的请求中传递它,这些请求是交互的一部分。

在本例中,我在第一次意图时查询数据库键(随后用于提取记录),并在sessionAttributes中传递该键,以避免对收到的每个意图请求执行查找。

EN

回答 2

Stack Overflow用户

发布于 2017-06-09 15:54:59

你在Alexa dev中寻找的sessionAttributes的等价物取决于你使用的是API.ai webhook还是会话webhook。有关差异的更多信息,请参考this doc

由于您使用的是API.ai,因此假设您使用的是Node.js客户端库,请使用下面的代码片段。“上下文”可以存储数据,而不仅仅是作为一种标志来确定你在对话中的位置。在你调用'ask‘之前调用setContext,并结束你的webhook实现。

app.setContext('<context name>', <lifespan of context>, <JSON to store>)

然后,对于下一轮实现,从上下文中的参数对象检索JSON。通过以下方式获取信息:

var myContext = app.getContext('<context name>')

有关更多信息,请参考these docs中的示例。

票数 2
EN

Stack Overflow用户

发布于 2017-05-03 15:50:42

您可以在API.ai中创建一个可选参数来捕获/存储此值,并将发送到API.ai的任何消息附加一个标记,然后附加您想要缓存的数据库值,这样API.ai就可以从标记中识别要缓存的值作为参数,这也将被传递回API.ai,所以如果您需要链接/循环此参数,您只需再次检查它是否具有特殊的“append”参数值,以将其附加到下一条用户消息。

也就是说,上下文可能会以一种更直接的方式实现您想要实现的最终目标

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43748518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档