Как запросить номер телефона пользователя во время разговора только один раз в диалоге? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь построить диалог и хочу спросить номер телефона пользователя только один раз во время чата. Для этого я попытался спросить номер телефона как слот в намерениях. Он отлично работает, если запрашивает номер телефона, но проблема в том, что он запрашивает номер телефона каждый раз. Я просто хочу попросить один раз и сохранить его. Для этого я попробовал webhooks, но не уверен, правильно ли я это реализовал.

Я пробовал webhooking @ sys.phone-number, но не уверен, правильно ли я это делаю.

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {

  const agent = new WebhookClient({ request, response });
  function phonecheck(agent) {
    const phonec = agent.parameters.phone;

    if (!phonec) {
        agent.add(`Please enter phone number`);
    }

}

    let intentMap = new Map();
  intentMap.set('fees_intent', phonecheck);
  agent.handleRequest(intentMap);
});

Я хочу проверить это только один раз. Если пользователь дал номер телефона один раз, он не должен спрашивать больше нигде.

1 Ответ

0 голосов
/ 11 июля 2019

Попробуйте использовать контекст ввода для намерения телефона. Всякий раз, когда вы хотите захватить телефонный номер, поместите контекст, скажем, «capture-phone» в качестве выходного контекста, к намерениям, и как только номер телефона будет захвачен, вы можете установить продолжительность жизни контекста «capture-phone» как «0».

Если вы используете слоты, то вы также можете использовать вышеуказанный контекстный способ. Но если у вас есть несколько слотов в этом намерении, то используйте DB для сохранения телефона. в webhook, проверьте, что телефон уже захвачен pinging DB. Если нет, попросите номер телефона и сохраните его в БД.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...