January 11
Telegram бот для собачего адресника
Введение
Потеря питомца — страшный сон любого владельца. Я решил подойти к вопросу технически и написал небольшой телеграм-бот, который будет круться на домашнем сервере, а на адреснике для своей собаки закажу QR-код, который ведет в персонального Telegram-бота.
Зачем это нужно?
- Геолокация в один клик: Нашедшему не нужно объяснять на словами, где он находится. Нажатие одной кнопки в боте отправляет мне точные координаты GPS.
- Прямая связь: Если человек не хочет делиться локацией, он может перейти в чат со мной.
- Актуальность данных: Если я поменяю номер телефона или акаунт в Telegram, мне не нужно переделывать жетон. Я просто обновлю ссылку в коде бота.
Технические детали
Бот написан на Python в 5 строчек кода с использованием библиотеки aiogram.
- При сканировании QR-кода открывается чат.
- По команде /start пользователь видит две опции: огромную кнопку «Отправить координаты» и кнопку «Связь с владельцем:».
- Как только нашедший подтверждает отправку локации, бот пересылает мне в личку карту с точкой, и логин владельца в Telegram.
- Разварачивать его буду у себя локально дома на dietpi.
Как развернуть?
Создание Telegram Bot’а
Опционально: Сделайте красивую аватарку для бота и приветственное сообщение с картинкой и описание.
Разварачивание на сервере
python3 --version pip3 --version
sudo apt-get update sudo apt-get install python3 python3-pip
git clone https://gitverse.ru/tatarinovms/finddogbot.git
cd finddogbot python3 -m venv venv
source venv/bin/activate pip install aiogram
vim bot.py
API_TOKEN = "ВАШ_ТОКЕН_ОТ_BOTFATHER" # Получите у @BotFather YOUR_CHAT_ID = 123456789 # Ваш Telegram ID YOUR_USERNAME = "ваш_username" # Ваш username без @
vim /etc/systemd/system/finddogbot.service
[Unit] Description=Telegram Dog Search Bot After=network.target [Service] Type=simple User=root WorkingDirectory=/root/finddogbot ExecStart=/root/finddogbot/venv/bin/python /root/finddogbot/bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload sudo systemctl enable finddogbot.service sudo systemctl start finddogbot.service
QR-код
Нам необходимо создать QR-код, который будет открывать чат с ботом. Формат ссылки: https://t.me/usernameбота?start=1