在 Google Dialogflow 中,如何将变量保存到会话结束
In Google Dialogflow, How to save variable till session end
我无法将 token 保存为变量,直到会话结束。此 令牌 将用于更多 API。
这是我的代码
'use strict';
const axios = require('axios');
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const {Payload} = require('dialogflow-fulfillment');
var token = "";
function login(agent) {
const email = agent.parameters.email;
const password = agent.parameters.password;
const baseurl = "http://demo:3000/login/buyerlogin";
var data = { email: email, password: password };
return axios
.get(baseurl, { data: { email: email, password: password } })
.then((result) => {
if (result.data.status == 200) {
agent.add("Login Successfully ");
agent.add("Select an option to proceed with other queries ");
token = result.data.token; //token will be used for further APIs
agent.add(
new Payload(agent.UNSPECIFIED, payloadlog, {
rawPayload: true,
sendAsMessage: true,
})
);
}
})
.catch((error) => {
agent.add("else " + error.message);
});
}
我想保存 令牌 直到会话结束。
请帮我解决这个问题。
谢谢
您可以将这些值保存在您设置的持久 Context 的参数中,稍后在您的 webhook 中读取。
在上下文中的参数中设置令牌值可能类似于
agent.context.set('info', 99, {
token: token
});
您稍后可以使用类似
的方式获取该上下文和令牌值
const infoContext = agent.context.get('info');
const token = infoContext.parameters.token;
我无法将 token 保存为变量,直到会话结束。此 令牌 将用于更多 API。 这是我的代码
'use strict';
const axios = require('axios');
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const {Payload} = require('dialogflow-fulfillment');
var token = "";
function login(agent) {
const email = agent.parameters.email;
const password = agent.parameters.password;
const baseurl = "http://demo:3000/login/buyerlogin";
var data = { email: email, password: password };
return axios
.get(baseurl, { data: { email: email, password: password } })
.then((result) => {
if (result.data.status == 200) {
agent.add("Login Successfully ");
agent.add("Select an option to proceed with other queries ");
token = result.data.token; //token will be used for further APIs
agent.add(
new Payload(agent.UNSPECIFIED, payloadlog, {
rawPayload: true,
sendAsMessage: true,
})
);
}
})
.catch((error) => {
agent.add("else " + error.message);
});
}
我想保存 令牌 直到会话结束。 请帮我解决这个问题。 谢谢
您可以将这些值保存在您设置的持久 Context 的参数中,稍后在您的 webhook 中读取。
在上下文中的参数中设置令牌值可能类似于
agent.context.set('info', 99, {
token: token
});
您稍后可以使用类似
的方式获取该上下文和令牌值const infoContext = agent.context.get('info');
const token = infoContext.parameters.token;