Документация

Что такое Чатиум
С чего начать
Web разработка
Мобильная разработка
Общие понятия
GetCourse API
Справка
Библиотеки
Все статьи

Как запросить контакт пользователя через телеграм?

Написано 5 месяцев назад
Просмотрен 15 раз
0

Телеграм позволяет запросить у пользователя привязанный номер телефона. Это гарантирует, что номер настоящий и принадлежит текущему пользователю. В ответ будет получено событие с контактом (визитной карточкой) пользователя.

Для получения контакта таким образом понадобятся 2 блока:

  • Отправить сообщение
  • Событие чата Telegram

Настройка сообщения

Чтобы запросить контакт, добавьте текст к сообщению, нажмите на кнопку настройки и выберите пункт "Запросить контакт"

Обратите внимание! Эта функция поддерживается только в Telegram и только для кнопок отправленных клавиатурой (т.е. если выбрать опцию "отправить кнопки с текстом сообщения", запрос контакта не сработает).

Сохраните изменения.

Теперь, когда пользователь нажмет на кнопку, у него появится окно с подтверждением.

Настройка события

Добавьте в воронку блок "Событие чата телеграм".

И выберите из выпадающего списка пункт "Получен контакт".

Обратите внимание! Телеграм отправляет событие с контактом не только в этом случае. Если отправить боту любой контакт как вложение, телеграм также пришлет событие с данными контакта. Поэтому, если вам важно получить контакт именно текущего пользователя, установите чек-бокс "Не принимать контакты других пользователей".

Сохраните настройки. Теперь, когда Ваш бот получит карточку контакта, в воронке активируется событие.

Сохранение данных события

Теперь, когда в воронку уже приходит событие, его данные можно обработать стандартными средствами воронки (сохранить в переменную, проверять в условиях, отправить в тексте сообщения и т.д).

Если вы еще не знакомы с переменными, изучите эту статью.

Зайдите в настройки реактивности и установите чек-бокс "установить переменные".

В этом событии доступны следующие свойства:

  • номер телефона event.contact.phone_number
  • имя отправленного контакта event.contact.first_name
  • фамилия отправленного контакта (если есть) event.contact.last_name
  • id телеграм пользователя (если есть) event.contact.user_id
  • дополнительные данные о контакте в виде vCard (если есть) event.contact.vcard

Если хотите узнать полную структуру события, можете залогировать данные.

Сохраните нужные свойства в переменные. Например так:

user.phone = event.contact.phone_number
user.telegramId = event.contact.user_id

Или можете сохранить весь объект целиком:

user.tgContact = event.contact

В этом случае, когда будете обращаться к переменной, путь будет состоять из двух ., т.е. user.tgContact.phone_number

Сохраните изменения.

Далее вы можете проверять значения этих переменных на стрелках, использовать в тексте и в других авто-действиях.

P.s. Если вы хотите самостоятельно проверить соответствует ли идентификатор отправленного контакта с идентификатором текущего пользователя и построить в зависимости от этого разные реакции, в этом вам помогут условия на стрелках. Идентификатор текущего пользователя находится в переменной события event.chat.originId Т.е. чтобы проверить, что пользователь отправил именно свой контакт, выражение может выглядеть так:

Инструкции
Воронки

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании