如何清除用户存储 (Dialogflow)

我正在用户存储中存储一个值(在我的例子中是用户想要听到新闻的城市)。我希望用户能够改变这个城市,从而改变用户存储。我已经尝试了多种方法,但还没有成功,希望有人可以提供帮助。

当用户选择更改城市时,将调用regio_kiezen意图。此意图询问您想要使用包含多个城市的名为regio 的实体来哪个城市。请参阅此意图的屏幕截图(顺便说一句:该事件是为调用此意图的另一个场景添加的):

https://i.stack.imgur.com/5Q4Xi.png

我遇到的问题是它不断显示旧(第一组)城市的新闻。因此,看起来 conv.user.storage.regio 没有被更改。我不知道为什么会发生这种情况,希望有人可以提供帮助!提前致谢。



海绵宝宝撒
浏览 112回答 1
1回答

当年话下

当在意图 2 中发生时,在意图 1 中看不到清除用户存储或更新。所做的工作是在 regio_kiezen 意图中创建一个新的用户存储变量。创建一个全局变量来存储该值。在 Regio 意图中检查该变量是否未定义,然后选择选择用户存储或创建的变量。我知道这可能不是很清楚,所以请看一下代码:app.intent('regio_kiezen', (conv, params) => {  console.log(`user1: ${conv.user.storage.regio}`);  p = 0;  r++;  conv.user.storage.regio = '';    conv.user.storage.regio = params['regio'];  test = conv.user.storage.regio;  test2 = params['regio'];  conv.user.storage.regio2 = test2;  tert = conv.user.storage.regio2;  console.log("testt: " + test + " test2: " + test2);  console.log(`tert: ${conv.user.storage} en ${conv.user.storage.regio2} en ${tert}`);  conv.followup('Regio');  console.log("intent: regio kiezen intent");  return tert;});app.intent('Regio', (conv) => {  p++;  console.log("regio intent");  console.log(`tertt: ${conv.user.storage.regio2} en ${tert}`);  //console.log("test: " + test + " test2: " + test2);  console.log(`doebiedushi: ${conv.user.storage.regio}`);  if (tert === undefined) {    var regioo = conv.user.storage.regio;  } else {    var regioo = tert;  }  conv.ask(new Suggestions(['Regio veranderen', 'Meer nieuws']));  return axios.get(`https:url/${regioo}`)    .then((result) => { //rest of code这有效并存储在会话和对话之间!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript