Как узнать номер телефона telegram api
Решение
Так выглядит весь сценарий:
Как это работает
Создаем первый экран, добавляем в него два блока “Текст”. В первый текстовый блок помещаем приветствие, а во втором запрашиваем имя. На этот же экран добавим блок Интенты, чтобы получить имя от пользователя. Для этого используем нашу системную сущность $NAME .
||| Системная сущность $NAME принимает только те имена, которые есть в ее словаре. Смотрите вариант дополненного сценария в конце статьи.
Вы можете получить имя из каналов, содержащих имя, с помощью переменной $rawRequest - читайте здесь.
Обязательно делаем эту фразу шаблоном, то есть, переключаем кавычки на значок @. Блок Интенты будет выглядеть следующим образом:
Пожалуйста, перейдите на эту статью и следуйте инструкции, чтобы опубликовать бота в канал Telegram.
Если вы уже добавили канал Telegram, переходите к следующему пункту.
- Чтобы получить chat_id, создайте в сценарии новый экран с текстом:
- Поместите этот экран в начало сценария, чтобы этот экран был в левом верхнем углу. Таким образом, этот экран будет первым при запуске бота.
- Затем обратитесь к своему боту, напишите /start, и бот пришлет вам нужное значение.
||| Вам обязательно нужно писать боту в канале Telegram. Если вы будете тестировать бота в тестовом виджете, он выдаст ошибку, так как не может получить данные из канала Telegram.
- Скопируйте и сохраните себе число, которое прислал бот.
- Удалите экран с текстом $rawRequest.message.from.id. Он больше не нужен.
- Отправка данных
где chat_id - число, которое вы получили в пункте 4.
Теперь мы можем протестировать: запускаем тест и видим, что нам приходит нужная информация в Telegram:
Возможные неполадки:
- При тестировании сценария вы получаете ошибку.
Обратите внимание на пункт 3 данной инструкции. Если ваш бот не опубликован в канале Telegram, вы не сможете реализовать эту функциональность.
Проверьте правильность оформления поля Body (синтаксис):
Дополняем сценарий
Системная сущность $NAME имеет ограниченный словарь.
Вы всегда можете просмотреть словарь системных сущностей:
В случае, если имя клиента не содержится в словаре системной сущности $NAME, по созданному нами сценарию бот будет снова спрашивать имя у клиента. Чтобы избежать этой ситуации и принимать необычные имена, дополним сценарий.
- От первого экрана с приветствием свяжите $NAME и "Любая друга фраза" с новым экраном, на который добавьте блок "Условия".
В блоке "Условия" пропишите следующее:
$name = $NAME ? $NAME.name : $queryText
- Свяжите данный блок условий с блоком, на котором мы запрашиваем номер пользователя:
Поле Body должно содержать следующее:
Готово. Теперь бот будет принимать за имя любой текст, набранный пользователем в ответ на вопрос "Как вас зовут?"
Вы также можете использовать регулярные выражения для валидации имени. Например, регулярное выражение $regexp<^[а-яА-Я]$> будет принимать слова, состоящие из букв русского алфавита, длиной от двух до пятнадцати символов.
Читайте также: