Как создать ТГ Бота ссылки на мессенджеры

Установка Python и pip

Сначала обновите пакеты и установите Python:

sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip -y

Проверьте версию Python и pip:

python3 --version
pip3 --version

Должно быть Python 3.8+.

Создание виртуального окружения (рекомендуется)

Создайте папку для бота и перейдите в неё:

mkdir telegram_bot && cd telegram_bot

Создайте виртуальное окружение и активируйте его:

python3 -m venv venv
source venv/bin/activate

Установка зависимостей

Теперь установите нужные библиотеки:

pip install aiogram python-dotenv

Создание файла с токеном

Создайте .env файл:

nano .env

Добавьте туда токен бота:

BOT_TOKEN=ваш_токен_из_BotFather

Сохраните (CTRL + X, затем Y и Enter).

Код бота:

import re
import logging
import os
import asyncio
from aiogram import Bot, Dispatcher, types, Router
from aiogram.types import Message
from aiogram.enums import ParseMode
from aiogram.client.default import DefaultBotProperties
from dotenv import load_dotenv

# Загружаем токен
load_dotenv()
TOKEN = os.getenv("BOT_TOKEN")

# Инициализация бота с DefaultBotProperties
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.MARKDOWN))
dp = Dispatcher()
router = Router() # Создаем Router

# Регулярка для поиска номеров
PHONE_REGEX = r"\+7\d{10}"

def generate_links(phone):
return (f" *Ссылки на мессенджеры:*\n"
f" [WhatsApp](https://wa.me/{phone[1:]})\n"
f" [Telegram](https://t.me/+{phone[1:]})")

# Обработчик сообщений (через Router)
@router.message()
async def check_message(message: Message):
matches = re.findall(PHONE_REGEX, message.text)
if matches:
for phone in matches:
links = generate_links(phone)
await message.reply(links)

async def main():
logging.basicConfig(level=logging.INFO)

dp.include_router(router) # Подключаем router
await dp.start_polling(bot)

# Запуск бота
if __name__ == "__main__":
asyncio.run(main())

Запуск бота

Создайте файл bot.py:

shКопироватьРедактироватьnano bot.py

Вставьте код бота (тот, что я давал ранее).
Сохраните и запустите:

shКопироватьРедактироватьpython3 bot.py

Если всё настроено правильно, бот начнёт работать!

Чтобы настроить автозапуск Telegram-бота через systemd на Ubuntu, следуй этим шагам:

Определение пути к Python и проекту

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

cd /root/telegram_bot
source venv/bin/activate
python bot.py

Если бот работает, определим путь к Python:

which python

Допустим, путь вывел:

/root/telegram_bot/venv/bin/python

Запомни этот путь, он понадобится в systemd.

Создание systemd-сервиса

Создаем новый сервис:

sudo nano /etc/systemd/system/telegram_bot.service

Вставляем этот код (замени пути, если у тебя другие!):

[Unit]
Description=Telegram Bot
After=network.target

[Service]
User=root
WorkingDirectory=/root/telegram_bot
ExecStart=/root/telegram_bot/venv/bin/python bot.py
Restart=always
RestartSec=5
StandardOutput=append:/var/log/telegram_bot.log
StandardError=append:/var/log/telegram_bot_error.log

[Install]
WantedBy=multi-user.target

Запуск сервиса

Сохрани файл (CTRL + X, затем Y и Enter).
Далее выполни команды:

# Обновить systemd
sudo systemctl daemon-reload

# Запустить бота
sudo systemctl start telegram_bot

# Включить автозапуск
sudo systemctl enable telegram_bot

Проверка работы

Проверь статус сервиса:

sudo systemctl status telegram_bot

Если бот работает, ты увидишь «Active (running)».

Если бот не запустился, посмотри логи:

sudo journalctl -u telegram_bot --no-pager --lines=50

Остановка и перезапуск

Если нужно остановить бота:

sudo systemctl stop telegram_bot

Если нужно перезапустить:

sudo systemctl restart telegram_bot

Теперь бот будет автоматически запускаться после перезагрузки сервера!

Оцените статью
( Пока оценок нет )
PcMiniPro
Добавить комментарий

254 / 0,402 / 16.48mb