javascript - 存储来自不同意图的多个参数
问题描述
我在 dialogflow firebase fullfillment 中保存来自不同意图的多个参数时遇到问题。我试过声明一个全局变量来存储数据,但无济于事。这是我到目前为止所拥有的。
我想将多个意图的参数保存到 firebase db
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const requestLib = require('request');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
const timestamp =new Date().toLocaleString();
let MyData = {};
function getTeamHandler(agent) {
MyData.team = agent.parameters.team ;
MyData.user_id = agent.originalRequest.payload.data.sender.id;
}
function getPwiHandler(agent) {
MyData.pwi = agent.parameters.with_pwi ;
return admin.database().ref('/spo').push({temp: MyData.team,user_id :MyData.user_id,with_pwi : MyData.pwi,timestamp:timestamp}).then((snapshot) => {
agent.add(`Please wait for the response for code : ${MyData.team}`);
});
}
let intentMap = new Map();
intentMap.set('1.team', getTeamHandler);
intentMap.set('2.pwi', getPwiHandler);
agent.handleRequest(intentMap);
});
解决方案
您可以使用上下文跨多个意图保存/使用数据。您需要设置输出上下文,然后在下一个 webhook 请求中,您可以获取您在先前意图中设置的上下文
推荐阅读
- swift - 使用swift在scrollview内的stackview中更改uibutton中的标题
- html - 如何阻止此文本移过此图像?
- docker - Firefox headless 不能在 Docker 中以非 root 用户身份工作
- javascript - InvalidStateError:无法在“IDBDatabase”上执行“事务”:数据库连接正在使用 ios safari 关闭
- ios - 等效于 iOS AVPlayer 的 exoplayer 中的 getBufferedPosition()
- django - Django 权限:基于逻辑的自定义检查
- reactjs - 使用 cookie 在 2 个反应 Web 应用程序之间共享身份验证
- javascript - 是否有一种 javascript 方法可以告诉我们输入范围滑块值是上升还是下降?
- python - 如何通过将它们相乘来修复整数(python pandas)
- git - github上的隐藏文件?