Проголосуйте 🔼 за полезные или 🔽 за бесполезные ответы.
1 ответ
0
Телеграм позволяет запросить у пользователя привязанный номер телефона. Это гарантирует, что номер настоящий и принадлежит текущему пользователю. В ответ будет получено событие с контактом (визитной карточкой) пользователя.
Для получения контакта таким образом понадобятся 2 блока:
Отправить сообщение
Событие чата Telegram
Настройка сообщения
Чтобы запросить контакт, добавьте текст к сообщению, нажмите на кнопку настройки и выберите пункт "Запросить контакт"
Обратите внимание! Эта функция поддерживается только в Telegram и только для кнопок отправленных клавиатурой (т.е. если выбрать опцию "отправить кнопки с текстом сообщения", запрос контакта не сработает).
Сохраните изменения.
Теперь, когда пользователь нажмет на кнопку, у него появится окно с подтверждением.
Настройка события
Добавьте в воронку блок "Событие чата телеграм".
И выберите из выпадающего списка пункт "Получен контакт".
Обратите внимание!
Телеграм отправляет событие с контактом не только в этом случае.
Если отправить боту любой контакт как вложение, телеграм также пришлет событие с данными контакта.
Поэтому, если вам важно получить контакт именно текущего пользователя, установите чек-бокс "Не принимать контакты других пользователей".
Сохраните настройки.
Теперь, когда Ваш бот получит карточку контакта, в воронке активируется событие.
Сохранение данных события
Теперь, когда в воронку уже приходит событие, его данные можно обработать стандартными средствами воронки (сохранить в переменную, проверять в условиях, отправить в тексте сообщения и т.д).
В этом случае, когда будете обращаться к переменной, путь будет состоять из двух ., т.е. user.tgContact.phone_number
Сохраните изменения.
Далее вы можете проверять значения этих переменных на стрелках, использовать в тексте и в других авто-действиях (например обновить поле в карточке пользователя).
P.s. Если вы хотите самостоятельно проверить соответствует ли идентификатор отправленного контакта с идентификатором текущего пользователя и построить в зависимости от этого разные реакции, в этом вам помогут условия на стрелках.
Идентификатор текущего пользователя находится в переменной события event.chat.originId
Т.е. чтобы проверить, что пользователь отправил именно свой контакт, выражение может выглядеть так:
Телеграм позволяет запросить у пользователя привязанный номер телефона. Это гарантирует, что номер настоящий и принадлежит текущему пользователю. В ответ будет получено событие с контактом (визитной карточкой) пользователя.
Для получения контакта таким образом понадобятся 2 блока:
Настройка сообщения
Чтобы запросить контакт, добавьте текст к сообщению, нажмите на кнопку настройки и выберите пункт "Запросить контакт"
Обратите внимание! Эта функция поддерживается только в Telegram и только для кнопок отправленных клавиатурой (т.е. если выбрать опцию "отправить кнопки с текстом сообщения", запрос контакта не сработает).
Сохраните изменения.
Теперь, когда пользователь нажмет на кнопку, у него появится окно с подтверждением.
Настройка события
Добавьте в воронку блок "Событие чата телеграм".
И выберите из выпадающего списка пункт "Получен контакт".
Обратите внимание! Телеграм отправляет событие с контактом не только в этом случае. Если отправить боту любой контакт как вложение, телеграм также пришлет событие с данными контакта. Поэтому, если вам важно получить контакт именно текущего пользователя, установите чек-бокс "Не принимать контакты других пользователей".
Сохраните настройки. Теперь, когда Ваш бот получит карточку контакта, в воронке активируется событие.
Сохранение данных события
Теперь, когда в воронку уже приходит событие, его данные можно обработать стандартными средствами воронки (сохранить в переменную, проверять в условиях, отправить в тексте сообщения и т.д).
Если вы еще не знакомы с переменными, изучите эту статью.
Зайдите в настройки реактивности и установите чек-бокс "установить переменные".
В этом событии доступны следующие свойства:
event.contact.phone_number
event.contact.first_name
event.contact.last_name
event.contact.user_id
event.contact.vcard
Если хотите узнать полную структуру события, можете залогировать данные.
Сохраните нужные свойства в переменные. Например так:
Или можете сохранить весь объект целиком:
В этом случае, когда будете обращаться к переменной, путь будет состоять из двух
.
, т.е.user.tgContact.phone_number
Сохраните изменения.
Далее вы можете проверять значения этих переменных на стрелках, использовать в тексте и в других авто-действиях (например обновить поле в карточке пользователя).
P.s. Если вы хотите самостоятельно проверить соответствует ли идентификатор отправленного контакта с идентификатором текущего пользователя и построить в зависимости от этого разные реакции, в этом вам помогут условия на стрелках. Идентификатор текущего пользователя находится в переменной события
event.chat.originId
Т.е. чтобы проверить, что пользователь отправил именно свой контакт, выражение может выглядеть так: