我正在尝试使用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());
}
但无法获取输出。
我不确定我做对的方法正确,请帮助完成它。
答案 0 :(得分:0)
在使用user.storage对象之前,应检查是否需要保存的数据才能在对话之间持续。如果您只需要在当前对话中提供数据,则使用conv.data会更容易。
如果您需要该信息在多个对话之间保持不变,请使用conv.user.storage。使用conv.user.storage时,请确保用户在activity controls中启用了网络和应用活动记录设置和包括Chrome浏览器历史记录复选框。
如果要使用用户存储来存储对话之间的数据,则需要这些设置。如果您不启用它们,那么您的数据将根本不会保存在用户存储中。