在Dialogflow Fulfillment中,我只是想使用conv.user.storage将数据从欢迎意图传递到帮助意图,如下面的代码所示。我可以将它添加到欢迎意图中,但是当我尝试在帮助意图中检索它时,它总是未定义的,这意味着数据不会传递给帮助意图。我花了几个小时在一些我认为是直截了当的事情上,并没有取得任何成功。我真的很感激一个真实的例子,告诉我如何修复它,并理解我做错了什么。
function welcome(agent) {
agent.add(request.body.queryResult.fulfillmentMessages[0].text.text[0]);
var entity = 'media_getreq?message=volume';
getData(entity).then(result => {
let conv = agent.conv();
conv.user.storage["devicedata"] = result;
console.log(conv.user.storage["devicedata"]); //WORKS
});
}
function help(agent) {
agent.add(request.body.queryResult.fulfillmentMessages[0].text.text[0]);
let conv = agent.conv();
console.log(conv.user.storage["devicedata"]); //ALWAYS EMPTY
}发布于 2019-02-23 19:29:26
您遗漏了Contexts,这是链接意图所需的关键组件。上下文表示用户请求的当前状态,并允许您的座席将会话信息从一个意图传输到另一个意图。您可以使用输入和输出上下文的组合来控制用户在对话序列中遍历的对话路径。
总之,收集Welcome输入的意图使用输出上下文来“记住”您说过的话。相同的上下文用作下一个intent的输入上下文,它将输入收集到HelpIntent中。
您需要相应地更新代码。有关详细信息,请参阅:
https://stackoverflow.com/questions/54117666
复制相似问题