如何使用履行库而不是actions在dialogflow的整个对话中获取数据

时间:2019-11-13 07:18:04

标签: dialogflow dialogflow-fulfillment

我正在尝试使用dialogflow-fillfillment库而不是使用action-google一次在dialogflow中获取所有参数。

有可能这样做吗?

我的代码就像-:

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
let conv= agent.conv();

function welcome(agent) {

let date = new Date();
var curHr = date.getHours();

if(curHr.toString() < 12)
{
  agent.add('Hello, Good Morning!');

}
else{
    agent.add('Hello, Hope you are having good day!');
}
}

function fein(agent){
const fein = agent.parameters.fein;
const name = agent.parameters['business-name'];
conv.user.storage = {
     fein: fein
  };


agent.add(conv.user.storage.fein.toString());
}

但无法获取输出。

我不确定我做对的方法正确,请帮助完成它。

1 个答案:

答案 0 :(得分:0)

在使用user.storage对象之前,应检查是否需要保存的数据才能在对话之间持续。如果您只需要在当前对话中提供数据,则使用conv.data会更容易。

如果您需要该信息在多个对话之间保持不变,请使用conv.user.storage。使用conv.user.storage时,请确保用户在activity controls中启用了网络和应用活动记录设置包括Chrome浏览器历史记录复选框。

enter image description here

如果要使用用户存储来存储对话之间的数据,则需要这些设置。如果您不启用它们,那么您的数据将根本不会保存在用户存储中。