Как стать автором
Обновить

Организация коммуникаций в Телеграм через proxybot

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.3K

Всем привет! В этой статье я расскажу о возможности организации коммуникаций в Телеграм при помощи бота proxybot. Он позволяет своему владельцу опубликовать в интернете своего бота и принимать все входящие сообщения и отвечать на них не раскрывая свой личный телеграм аккаунт и не создавая дополнительных аккаунтов в приложении Telegram. Боты легко регистрируются через @BotFather, их можно создавать столько, сколько нужно.

Интересные возможности данный бот раскрывает в комбинации с использованием "супергрупп", в которых можно создавать "топики". Когда бот настроен на приём сообщений в супергруппу (как это сделать будет ниже) он сам создаст в ней топик с именем клиента в качестве имени топика, когда клиент впервые обратится. И в последующем бот будет направлять в этот же топик все сообщение от этого клиента. Таким образом вся коммуникация с клиентом происходит в его личном "топике". Топик можно удалить комадной /del.

На gif'ке в конце продемонстрировано, как выглядит данная коммуникация для пользователя Pasha Flores.

Для командной работы просто пригласите в группу своих коллег или сотрудников и они смогут отвечать на сообщения вместе с вами / вместо вас!

Как создать и настроить супергруппу?

Инструкции по самостоятельному запуску бота есть на домашем сайте проекта, там же есть короткий ролик, как вы можете создать и запустить своего бота прямо со своего телефона. Здесь я привожу инструкции касательно создания и настройки супергруппы.

Что бы настроить proxybot на приём сообщения в супергруппу нужно выполнить следующие шаги:
1. Создать группу
2. Добавить в неё своего бота
3. В настройках группы активировать топики (и группа превращается в супергруппу)
4. Сделать бота админом с правами создания топиков
5. Написать в группу команду /setdefault для получения всех новых сообщений в неё

Использование без группы (бот обратной связи)

В принципе, proxybot может быть полезен и без использования супергруппы. Например, для того чтобы опубликовать его для приема обратной связи (отызвы/предложения/жалобы/...). Бот пересылает все получаемые сообщения владельцу бота и каждое последнее неотвеченное сообщение от клиента отмечает символом ⚡️. После ответа на сообщение бот снимает этот emoji. Таким образом несколько упрощается задача найти в истории неотвеченное сообщение.

Здесь видно, как пользователи Sasha Li и затем Pasha Flores присылают сообщения проксиботу. Каждый из них получает ответ в свой черёд. Последнее сообщение в чате всегда отправляется последнему контакту. И можно выбрать конкретное сообщение и нажать "Reply".

Технические подробности реализации бота

Исходный код бота написан на python и выложен в публичный доступ. Бот заточен под работу в качестве Google Clound Function (другие платформы на подходе), или же его можно запустить как обычное Flask приложение.

Бот использует БД Mongo для хранения своих настроек и таблицы tracking. Таблица tracking работает аналогично conntrack в linux для реализации SNAT & DNAT функционала. В ней сохраняются ID и имена пользователей и некоторая другая служебная информация: u_id, u_chat, u_name, u_thread, u_last_id, p_chat, p_thread, timestamp.

Когда бот получает сообщения, он ищет отправителя в этой таблице по u_id, затем по u_chat. Да, это позовляет даже вашим клиентам создать свою группу и добавить туда вашего бота, и в группе сообща общаться, скажем, с вашей командой! Получается своебразный коммуникационный мост между разными командами. Только для того, чтобы ваш бот в чужой группе получал сообщения без назначения ему админских прав, ему нужно задать настройку Group Privacy = off . Это делается через того же @BotFather .

Резюме и обратная связь

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

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

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

Публикации

Истории

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань