Введение Link to heading

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

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

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

  • Прямая связь: Если человек не хочет делиться локацией, он может перейти в чат со мной.

  • Актуальность данных: Если я поменяю номер телефона или акаунт в Telegram, мне не нужно переделывать жетон. Я просто обновлю ссылку в коде бота.

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

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

  • При сканировании QR-кода открывается чат.

  • По команде /start пользователь видит две опции: огромную кнопку «Отправить координаты» и кнопку «Связь с владельцем:».

  • Как только нашедший подтверждает отправку локации, бот пересылает мне в личку карту с точкой, и логин владельца в Telegram.

  • Разварачивать его буду у себя локально дома на dietpi.

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

Создание Telegram Bot’а Link to heading

  • Через @BotFather создайте бота и получите токен.

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

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

Разварачивание на сервере Link to heading

  • Проверяем, что у нас установлен 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-код Link to heading

Нам необходимо создать QR-код, который будет открывать чат с ботом. Формат ссылки: https://t.me/usernameбота?start=1

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

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