Twin LiveDemo

Этот кейс поддерживается телеграм ботом LiveDemo - ID этого кейса: 137789465. 

Подробнее про LiveDemo

Получить номер телефона в Telegram можно только с согласия клиента - у Telegram ботов нет доступа к персональным данным, и номер не сохраняется в переменную {системные.телефон}.

Для того чтобы получить номер клиента с помощью функции Поделиться номером, выполните следующие действия в редакторе сценария:

  1. Разместите блок вопроса.

  2. Добавьте действие Поделиться номером.

  3. В поле ниже укажите текст, который будет отображаться на кнопке.

    Важно

    Блок вопроса не должен быть пустым, иначе кнопка не будет отображаться клиенту.



  4. Далее протяните стрелку из блока вопроса в интересующий вас блок и выберите ее. После этого выполните следующие действия:

    4.1. Установите Тип выходных данных как Ветка по умолчанию. Это необходимо для корректной работы этого кейса.

    4.2. Поставьте галку Сохранить ответ.

    4.3. В появившемся поле объявите название новой переменной, куда будет сохранен полученный номер.

    4.4. Заполните поле Вариант ответа. Текст, содержащийся в этом поле, обязательно должен совпадать с текстом, который вы указали в пункте 3.



Важно

Полученный от клиента номер в мобильном приложении Telegram и декстопной его версии будет отличаться. В мобильной версии номер телефона будет начинаться с 7, а в декстопной с +7. Для того чтобы избавиться от символа «+» вы можете использовать обработчик этого события, описанный ниже.

Для того чтобы получить корректную форму ответа без символа «+», выполните следующие действия:

  1. Разместите блок арифметики.

  2. Убедитесь, что Тип установлен как Арифметическая операция.

  3. Введите в основное поле блока функцию math.round({X}, 0), где Х – название переменной, которую вы задали на шаге 4.3, с номером клиента внутри.

  4. Заполните поле Сохранить результат в переменную по шаблону {X}, где X – название вашей переменной, в которую вы хотите сохранить получившийся номер.

Важно

Просим обратить внимание на аргументы функции math.round(num number, precision int). Функция округляет число (в нашем кейсе номер телефона является числом). 

Если передать в функцию текст (строку), то Бот может зависнуть. Он не пойдет далее по сценарию и не переведет диалог на оператора. В будущих релизах мы исправим это поведение. А пока просим Вас быть внимательнее. 

Подробнее о BPL функциях Вы можете прочитать в статье "Функции стандартной библиотеки BPL v2"



На скриншоте ниже видно, как бот вывел 2 варианта ответа: до обработки и после.