Group to Group Telegram chat-bot.
Links multiply chat-groups into single connected network,
and allows exchange messages between all connected groups
bot_token.txt
- contains Botfather Token of your botusers.txt
- contains list of User's Groups ID'sadmins.txt
- contains list of Admin's Groups ID's
/start
- вызов бота/on
- бот слушает сообщения/off
- бот игнорирует сообщения/all
+ "твое_сообщение" - отправить всем/get_groups_id
- получить ID групп/add_user_group
+ "ID_группы" - добавить ID в список users.txt/del_user_group
+ "ID_группы" - удалить ID из списка users.txt/add_admin_group
+ "ID_группы" - добавить ID в список admins.txt/del_admin_group
+ "ID_группы" - удалить ID из списка admins.txt
Для получения ID группы рекомендую использовать другого бота @getmy_idbot
(https://t.me/getmy_idbot) и кнопку Chat
(или аналогичные)
Также можно использовать кастомные Telegram-клиенты, которые показывают ID группы, например iMe или Swiftgram
Чтобы отправить сообщение в другую группу сделайте одно из следующего:
- упомяните бота в сообщении через его никнейм с символом
@
- ответьте сообщением на сообщение (
reply
) от бота - включите режим прослушки сообщений командой
/on
; пишите в чат любые сообщения для перессылки в другую группу ; по завершению выключите режим прослушки командой/off
- ответьте сообщением на сообщение (
reply
) в режиме/on
на любое сообщение пользователя (не бота) чтобы отправить в другую группу 2 сообщения с контекстом (reply
+ сообщение) - ответьте сообщением на сообщение (
reply
) на любое сообщение пользователя (не бота) с упоминанием бота через его никнейм (с символом@
) чтобы отправить в другую группу 2 сообщения с контекстом (reply
+ сообщение) - (
только для админской группы
) начните сообщение с команды/all
и напишите после нее текст, который хотите разослать во все пользовательские группы
Режим прослушки /on
(/off
) для админской группы (а также упоминание бота через его никнейм с символом @
) после каждого сообщения в чате присылает меню с кнопками выбора пользовательского чата, куда отправить сообщение.
Для получения списка всех доступных для обмена сообщениями админских и пользовательских групп используйте команду:
/get_groups_id
(Данная команда работает только в админских группах)
Для добавления ID группы в список админских или пользовательских групп (в файлы конфигов admins.txt
и users.txt
) используйте соответствующие команды:
/add_admin_group
+ "ID_группы" - добавить ID в список admins.txt/add_user_group
+ "ID_группы" - добавить ID в список users.txt
(Данные команды работают только в админских группах)
Для исключения ID группы в список админских или пользовательских групп (из файлов конфигов admins.txt
и users.txt
) используйте соответствующие команды:
/del_admin_group
+ "ID_группы" - удалить ID из списка admins.txt/del_user_group
+ "ID_группы" - удалить ID из списка users.txt
(Данные команды работают только в админских группах)
Ниже приведена подробная пошаговая инструкция по развертыванию бота в вашем облаке (на примере сервера на базе Ubuntu). В инструкции описаны команды для установки необходимых пакетов, создания виртуального окружения и настройки systemd-сервиса для автозапуска.
-
Подключитесь по SSH к вашему серверу.
-
Обновите пакеты системы:
sudo apt update && sudo apt upgrade -y
-
(При необходимости) Установите Git для клонирования репозитория:
sudo apt install git -y
-
Установите Python 3 и необходимые пакеты, если они ещё не установлены:
sudo apt install python3 python3-venv python3-pip -y
-
Создайте папку для проекта и перейдите в неё (например,
/home/username/telegram-bot
):mkdir -p ~/telegram-bot cd ~/telegram-bot
-
Клонируйте проект из репозитория локально:
git clone https://github.com/chelaxian/G2G_TG_BOT .
-
Создайте виртуальное окружение:
python3 -m venv venv
-
Активируйте виртуальное окружение:
source venv/bin/activate
-
Обновите pip:
pip install --upgrade pip
-
Установите пакет python-telegram-bot (версия 20+ поддерживает асинхронный API):
pip install python-telegram-bot
Если вы предпочитаете использовать файл зависимостей, создайте файл
requirements.txt
со следующим содержимым:python-telegram-bot
и выполните:
pip install -r requirements.txt
Шаг 4. Получение токена для бота через @BotFather (https://t.me/BotFather)
-
Запуск Telegram и поиск BotFather:
- Откройте Telegram и в строке поиска введите BotFather.
- Выберите пользователя BotFather (официальный бот Telegram для создания и управления другими ботами).
-
Создание нового бота:
- Напишите команду
/newbot
и отправьте её. - BotFather попросит вас ввести имя для вашего бота. Это имя будет отображаться в Telegram.
- Затем BotFather попросит ввести username для вашего бота. Имя должно быть уникальным и заканчиваться на
bot
(например,my_cool_bot
).
- Напишите команду
-
Получение токена:
-
После того как вы придумаете имя и username, BotFather отобразит сообщение с вашим токеном:
Done! Congratulations on your new bot. You will find it at t.me/my_cool_bot. You can now add a description, about section and profile picture for your bot in BotFather. Use this token to access the HTTP API: <your-token-here>
-
Скопируйте токен, который отображается в сообщении (внутри угловых скобок
< >
).
-
-
Хранение токена:
- Для безопасности храните токен в безопасном месте. Этот токен нужно будет использовать в вашем коде для подключения к Telegram API.
-
Настройка бота в BotFather (по желанию):
- Вы также можете настроить описание бота, фотографию, команды и другие параметры, используя команды BotFather. Например:
/setdescription
— для добавления описания бота./setabouttext
— для добавления текста о боте./setuserpic
— для установки фотографии профиля./setjoingroups
— для разрешения добавления бота в группы выставите значениеenable
./setprivacy
— для разрешения боту чтения всех сообщений в группе выставите значениеdisable
.Bot Settings
->Group Admin Rights
- Выдайте все административные права, кромеPromote Anonymous admins
./setcommands
— для задания списка доступных команд для бота. Скопируйте и вставьте в чат следующие команды:
- Вы также можете настроить описание бота, фотографию, команды и другие параметры, используя команды BotFather. Например:
start - вызов бота
on - бот слушает сообщения
off - бот игнорирует сообщения
all - отправить всем
get_groups_id - получить ID групп
add_user_group - + ID - добавить ID в список users
del_user_group - + ID - удалить ID из списка users
add_admin_group - + ID - добавить ID в список admins
del_admin_group - + ID - удалить ID из списка admins
Теперь у вас есть токен, который необходимо вставить в файл bot_token.txt
вашего проекта для подключения бота к Telegram API.
-
В корневой папке проекта разместите файл
bot_token.txt
с токеном вашего бота (одна строка, содержащая токен). -
Убедитесь, что файлы
users.txt
иadmins.txt
существуют (их можно создать пустыми, если группы будут добавляться позже).
Чтобы проверить работу бота, выполните команду:
python group-bot.py
Если бот успешно запустился, он начнет опрашивать сервер Telegram (long polling).
Чтобы бот запускался автоматически и перезапускался при сбоях, создайте systemd-сервис.
-
Создайте файл сервиса:
sudo nano /etc/systemd/system/telegrambot.service
-
Вставьте в него следующий конфигурационный текст (не забудьте заменить
username
на ваше имя пользователя и путь к проекту):[Unit] Description=Telegram Bot Service After=network.target [Service] User=username WorkingDirectory=/home/USERNAME/telegram-bot ExecStart=/home/USERNAME/telegram-bot/venv/bin/python group-bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
-
Сохраните файл и перезагрузите systemd-демон:
sudo systemctl daemon-reload
-
Включите автозапуск сервиса:
sudo systemctl enable telegrambot.service
-
Запустите сервис:
sudo systemctl start telegrambot.service
-
Проверьте статус сервиса:
sudo systemctl status telegrambot.service
-
Для просмотра логов используйте:
sudo journalctl -u telegrambot.service -f
Теперь ваш бот развернут и запущен в облаке.
Добавьте вашего бота во все админские и пользовательские чат-группы в Telegram и сделайте бота администратором каждой такой группы. Выдайте боту все административные права, кроме прав на Анонимность.
Группа может быть частной и даже с запретом на пересылку сообщений. Бот будет работать в любом случае, так как он не пересылает сообщения а копирует и дублирует в другую чат-группу.