Всем привет! В этой статье я расскажу о возможности организации коммуникаций в Телеграм при помощи бота 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

Комментарии (6)


  1. aafin
    20.06.2024 07:15

    А смысл? Купить анонимный тел номер на fragment и будет ананимеый аккаунт же?


    1. litnialex Автор
      20.06.2024 07:15

      Это тоже вариант. Но лично мне удобней пользоваться одним аккаунтом и подключить к нему столько проксиботов, сколько мне нужно...


    1. kellas
      20.06.2024 07:15
      +2

      Cмысл есть и задумка очень классная!

      Отвечать пользователю и видеть переписку с ним, может кто угодно из команды - кто приглашен в группу c этими топиками. То есть не надо этот анонимный аккаунт каждому подключать. - просто пригласил в чат всех операторов и все.

      Смотрите - юзер общается с ботом и понимает это, это важно - он не знает прочитано ли его сообщение например, юзер воспринимает иначе общение с ботом нежели чем с человеком.

      Юзер не может удалить у вас переписку.

      Можно создать много групп для разных приложений или даже разных тем обращений и пригласить в них разных или одних и тех же операторов тех-поддержки. Количество подключаемых аккаунтов все-таки ограничено в отличии от количества групп где вы можете быть участником.


      1. litnialex Автор
        20.06.2024 07:15

        Рад, что вы заценили :)


    1. difhel
      20.06.2024 07:15
      +1

      Ну, даже не учитывая дельные аргументы комментатора ниже, это решение стоит аренды самого дешёвого сервера за 100 рублей в месяц, а не 800 баксов.


      1. litnialex Автор
        20.06.2024 07:15

        Если запустить бот в качестве Google Cloud Function (https://proxybot.dev/ru/Telegram-Bot-Serverless.html) и подключить бесплатную базу от MongoDB Atlas - получится очень надёжно и практически бесплатно...