Найти в Дзене
КББ

Telegram бот для собачего адресника

Потеря питомца — страшный сон любого владельца. Я решил подойти к вопросу технически и написал небольшой телеграм-бот, который будет круться на домашнем сервере, а на адреснике для своей собаки закажу QR-код, который ведет в персонального Telegram-бота. Бот написан на Python в 5 строчек кода с использованием библиотеки aiogram. Опционально: Сделайте красивую аватарку для бота и приветственное сообщение с картинкой и описание. 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/fin
Оглавление

Введение

Потеря питомца — страшный сон любого владельца. Я решил подойти к вопросу технически и написал небольшой телеграм-бот, который будет круться на домашнем сервере, а на адреснике для своей собаки закажу QR-код, который ведет в персонального Telegram-бота.

Зачем это нужно?

  • Геолокация в один клик: Нашедшему не нужно объяснять на словами, где он находится. Нажатие одной кнопки в боте отправляет мне точные координаты GPS.
  • Прямая связь: Если человек не хочет делиться локацией, он может перейти в чат со мной.
  • Актуальность данных: Если я поменяю номер телефона или акаунт в Telegram, мне не нужно переделывать жетон. Я просто обновлю ссылку в коде бота.

Технические детали

Бот написан на Python в 5 строчек кода с использованием библиотеки aiogram.

  • При сканировании QR-кода открывается чат.
  • По команде /start пользователь видит две опции: огромную кнопку «Отправить координаты» и кнопку «Связь с владельцем:».
  • Как только нашедший подтверждает отправку локации, бот пересылает мне в личку карту с точкой, и логин владельца в Telegram.
  • Разварачивать его буду у себя локально дома на dietpi.

Как развернуть?

Создание Telegram Bot’а

  • Через @BotFather создайте бота и получите токен.
  • Запишите токен, он нам пригодится для запуска бота.

Опционально: Сделайте красивую аватарку для бота и приветственное сообщение с картинкой и описание.

Разварачивание на сервере

  • Проверяем, что у нас установлен Python и pip:

python3 --version
pip3 --version

  • Если нет, то устанавливаем (в примере Ubuntu):

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

Как выглядит для пользователя?

-2

Как выглдяит для владельца пса?

-3