Полезные процедуры для настройки сценариев
Обработка номера телефона
Процедура для узла, в котором необходимо обработать пользовательский ввод и проверить номер телефона на валидность. После копирования добавьте названия узлов для следующего шага в сценарии и для повторного ввода номера телефона.
{# проверяем на валидность отправленный номер телефона #}
{% normalize_phone request.content is_forced=True as phone_number %}
{# Отправленный номер телефона валидный #}
{% if phone_number %}
{# сохраняем в профиль клиента отправленный номер телефона #}
{% set_attribute "profile_phone_number" phone_number %}
{# переадресуем пользователя в следующий сценарий #}
{% switch "название_сценария" %}
{% else %}
{# отправлен был невалидный номер телефона, переадресуем пользователя в сценарий где повторно просим его отправить номер #}
{% switch "название_сценария" %}
{% endif %}
Обработка номера телефона с проверкой на то, что был отправлен контакт из Telegram
Процедура для узла, в котором необходимо обработать пользовательский ввод и проверить отправить пользователь свой контакт из Telegram и только в этом случае сохранить его в профиль клиента. После копирования добавьте названия узлов для следующего шага в сценарии и для повторного ввода номера телефона.
{# проверяем на валидность отправленный номер телефона #}
{% if request.type == "contact" and request.is_own_contact %}
{# сохраняем в профиль клиента отправленный номер телефона #}
{% set_attribute "profile_phone_number" request.content %}
{% switch "название_сценария" %}
{% else %}
{# отправлен не контакт пользователя, переадресуем пользователя в сценарий где повторно просим его отправить номер #}
{% switch "название_сценария" %}
{% endif %}
Сохранение имени, email в профиль клиента
Для сохранения имени в процедуре узла сохранения напишите:
{% set_attribute "profile_full_name" request.content %}
Для сохранения email в процедуре узла сохранения напишите:
{% set_attribute "profile_email" request.content %}
Регулярные выражения
Проверка на email:
^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$
Проверка на отправку даты ф формате день.месяц.год:
(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)\d\d
Проверка подписки на Telegram-канал
Для проверки подписки на Telegram-канал добавьте чат-бот в качестве администратора в Telegram-канал.
В узле проверки подписки укажите данный API-запрос
{
"method": "POST",
"url":"https://api.telegram.org/bot{{токен_чат_бота}}/getChatMember?chat_id={{id_telegram_канала}}&user_id={{messenger_id}}"
}
Вместо {{токен_чат_бота}} напишите токен чат-бота, который добавлен администратором в канал Вместо {{id_telegram_канала}} напишите id нужного канала, узнать id можно через специальные чат-боты.
В процедуре узла пропишите следующий код:
{# проверяем ответ от Telegram для данного пользователя #}
{% if http_response.result.status == "member" or http_response.result.status == "administrator" or http_response.result.status == "creator" %}
{# пользователь подписан на канал #}
{% switch "название дальнейшего узла" %}
{% else %}
{# пользователь не подписан на канал #}
{% switch "название узла когда пользователь не подписан на канал" %}
{% endif %}
Не забудьте заменить названия сценариев в которые нужно перейти после проверки подписи.
Last updated