我正在尝试从响应对象获取sessionId,但这是一种有效的方法,还是有其他可能获得会话Id或会话对象?
例如:request.body.session:projects/coffee-shop/agent/sessions/e6eb1812-9c3f-23fa-b590-f1656ee9a56e
如何得到精确的IDe6eb1812-9c3f-23fa-b590-f1656ee9a56e而不是路径。或如何在路径 projects/coffee-shop/agent/**sessions**/e6eb1812-9c3f-23fa-b590-f1656ee9a56e中获取projects/coffee-shop/agent/**sessions**/e6eb1812-9c3f-23fa-b590-f1656ee9a56e会话对象。
发布于 2018-10-05 21:20:03
是的,您可以从WebhookClient的代理实例中获取会话id:
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));
function welcome(agent) {
agent.add(`Welcome to my agent!`);
let sessionId = agent.session;
}
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
agent.handleRequest(intentMap);
});发布于 2018-10-08 20:25:19
假设变量req中有request对象,我们可以使用下面的python代码:
session_path = req['session'] 它将打印会话对象路径: projects/coffee-shop/agent/sessions/e6eb1812-9c3f-23fa-b590-f1656ee9a56e
要获得确切的id,只需将其拆分为/,并接受列表的最后一个元素
session = req['session'].split('/')[-1] 它将打印精确的会话id: E6eb1812-9c3f-23 23fa b590-f1656ee9a56e
https://stackoverflow.com/questions/52655214
复制相似问题