Интеграция с Telegram

Последние изменения: 05.04.2024

Суть интеграции

Интеграция позволяет удалять из группы/канала в ТГ пользователей, у которых закончился доступ.

Как работает?

Пользователь будет удален из группы, а точнее добавлен в черный список если:

  • закончилась подписка или сняли группу доступа с пользователя

  • пользователь удален

  • левый пользователь, т.е. вступил в группу не покупая продукт.

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


Требования

Важно! Обязательно наличие SSL-сертификата.

План интеграции

  1. Создаем бота (с помощью отправки команды /newbot пользователю BotFather в Telegram).

  2. Приглашаем в свой канал, назначаем его администратором с правами на удаление пользователей.

  3. Получаем token бота (с помощью отсылки команды /mybot пользователю BotFather и последующей выбирание функции API Token)

  4. Сохраняем токен и название бота в настройках расширения (/admin/telegramsetting).

  5. Устанавливаем вебхуки (нужно перейти по ссылки из настроек), что бы от приложения Telegram приходили данные пользователей из чата .

  6. Выбираем группу пользователей, которым нужно вывести ссылку в ЛК для интеграции с Telegram.

  7. Если нужно удалять пользователей из чата при окончании подписки , то в настойках подписки во вкладке “Доступ” в настройках интеграции телеграмм указываем id чата Telegram, из которого нужно удалять пользователей. Для получения id чата в свой качанал/чат нужно добавить бота “IDBot (@myidbot)”, после чего с помощью команды “/getgroupid” бот выдаст нужную информацию.

  8. Если нужно удалять пользователей из чата при удалении группы у пользователя, то в настойках группы во вкладке “События” указываем id чата.
    Как узнать ID чата: https://docs.leadconverter.su/faq/populyarnye-voprosy/telegram/kak-uznat-id-telegram-kanala

  9. Если после заполнения всех настроек и установки вебхук, привязка пользователей к телеграмму не работает, возможно поможет переустановка вебхук (сначала удалить вебхуки, потом заново установить)


Привязка телеграма к профилю пользователя

  • Если пользователь состоит в группе, которая указана в расширении, в ЛК в настройках профиля напротив поля ника Telegram будет отображаться кнопка для привязки.

  • При активации кнопки для привязки с Telegram отобразится сообщение с краткой инструкцией, после чего откроется вкладка Telegram с дальнейшим переходом в Telegram.

  • Для интеграции пользователю нужно нажать на кнопку в чате с ботом, после чего в случае успешной интеграции бот отошлет пользователю сообщение об успехе.

  • После окончания успешной интеграции кнопка скроется. Если сообщения никакого не вывелось, то скорее всего или у бота недостаточно прав, или нужно пересохранить вебхуки в настройках расширения. Для проверки привязки достаточно перейти во вкладку “Список участников” в настройках расширения, если оба первых поля не пустые и имеют цифровые значения, значит пользователь привязался.

  • При удалении пользователь вносится в черный список, что бы в дальнейшем не мог подключиться к каналу самостоятельно.

Далее служебная информация.


Описание работы с API

При создании вебхуки на адрес https://api.telegram.org/bot методом GET с параметром "setWebHook" отправляются данные с урлом сайта, на который будут приходить уведомления при какой-нибудь активности с ботом
или в чате, для которого были установлены настройки в чате.

При интеграции пользователя отправляется сообщение с токеном боту (с помощью кнопки START в чате), после чего на сервер сайта приходит сообщение с токеном, а так же данные о пользователе.
Если токен совпадает с токеном, сохраненным для данного пользователя перед открытием приложения Telegram, полученные данные сохраняются в базу данных расширения. После чего с помощью
отправки параметра sendMessage и текстом сообщения, бот отправляет сообщение пользователю в чате об успешной привязке.

При удалении подписки или группы у пользователя, если пользователь есть в базе данных расширения Telegramи для этой подписки(группы) сохранено название чата, из которого нужно удалять пользователей,
на API Telegram отправляются данные с параметром kickChatMember и айди пользователя, после чего в API Telegram происходит удаление данного пользователя из чата.



Помогла ли вам статья?