Как получить sessionId-диалог потока - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь получить sessionId из объекта ответа, но это эффективный способ или есть какие-то другие возможности получить идентификатор сессии или объект сеансов?

Например: request.body.session: projects/coffee-shop/agent/sessions/e6eb1812-9c3f-23fa-b590-f1656ee9a56e

Как получить точный ID : e6eb1812-9c3f-23fa-b590-f1656ee9a56e вместо пути.или Как получить объект сеанса в пути projects/coffee-shop/agent/**sessions**/e6eb1812-9c3f-23fa-b590-f1656ee9a56e

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Предполагая, что у нас есть объект запроса в переменной req, мы можем использовать приведенный ниже код Python:

session_path = req['session']  

он напечатает путь к объекту сеанса:
projects / coffee-shop / agent/ session / e6eb1812-9c3f-23fa-b590-f1656ee9a56e

, чтобы получить точный идентификатор, вы можете просто разделить его с помощью / и взять последний элемент списка

session = req['session'].split('/')[-1]  

будет напечатан точный идентификатор сессии:
e6eb1812-9c3f-23fa-b590-f1656ee9a56e

0 голосов
/ 06 октября 2018

Да, вы можете получить идентификатор сеанса из экземпляра агента WebhookClient:

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);
  });
...