Skip to content

n0pashkov/ticketsTGbot

Repository files navigation

Telegram Bot для Google Forms

Этот бот отслеживает новые ответы на Google Forms и отправляет уведомления в Telegram.

Установка и настройка

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

# Активируйте виртуальное окружение
source venv/bin/activate

# Установите зависимости
pip install aiogram python-dotenv google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client

2. Настройка Google API

  1. Перейдите в Google Cloud Console
  2. Создайте новый проект или выберите существующий
  3. Включите Google Forms API
  4. Создайте учетные данные OAuth 2.0
  5. Скачайте файл credentials.json и поместите его в корневую папку проекта

3. Настройка Telegram Bot

  1. Найдите @BotFather в Telegram
  2. Создайте нового бота командой /newbot
  3. Получите токен бота
  4. Узнайте свой Telegram User ID (можно использовать @userinfobot)

4. Настройка конфигурации

Создайте файл .env в корневой папке проекта:

# Telegram Bot Token
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here

# Google API credentials
GOOGLE_CREDENTIALS_FILE=token.json

# Google Form ID
FORM_ID=your_google_form_id_here

# Your Telegram User ID (where to send notifications)
YOUR_TELEGRAM_ID=your_telegram_user_id_here

Как получить Google Form ID:

  • Откройте вашу Google Form
  • URL будет выглядеть как: https://docs.google.com/forms/d/FORM_ID/edit
  • Скопируйте FORM_ID из URL

5. Первый запуск

При первом запуске бот попросит авторизоваться в Google:

python telegram_bot.py

Следуйте инструкциям в браузере для авторизации. После успешной авторизации будет создан файл token.json.

Использование

Команды бота

  • /start - Начать работу с ботом
  • /check - Проверить новые ответы вручную
  • /status - Проверить статус подключения к Google Forms

Автоматические уведомления

Бот автоматически проверяет новые ответы каждые 5 минут и отправляет уведомления.

Формат уведомлений

Бот отправляет структурированные уведомления в следующем формате:

🚨 НОВАЯ ЗАЯВКА
==================================================

📅 Дата: 02.09.2025 12:09
🏢 Кабинет: 3101
👤 ФИО: Копаничук Л.В.
📞 Контакт: 89992192358

🔧 Тип проблемы: С принтером
📋 Модель: Xerox B225
📝 Описание: 1. ставлю документ на печать. 2.Печатает странные символы

==================================================
🆔 ID: ACYDBNiM...

Бот автоматически определяет тип проблемы и показывает соответствующие детали в зависимости от выбранного варианта в форме.

Структура проекта

ticketsTGbot/
├── telegram_bot.py      # Основной файл бота
├── config.py            # Конфигурация
├── requirements.txt     # Зависимости Python
├── token.json          # Google API токен (создается автоматически)
├── credentials.json    # Google API учетные данные (нужно скачать)
└── .env                # Переменные окружения (создать вручную)

Возможные проблемы

Ошибка аутентификации

  • Убедитесь, что файл credentials.json находится в корневой папке
  • Проверьте, что включен Google Forms API в Google Cloud Console
  • Убедитесь, что указаны правильные scopes в коде

Ошибка подключения к форме

  • Проверьте правильность FORM_ID
  • Убедитесь, что у вас есть доступ к форме
  • Проверьте, что форма опубликована

Ошибки Telegram

  • Проверьте правильность токена бота
  • Убедитесь, что бот не заблокирован
  • Проверьте правильность YOUR_TELEGRAM_ID

Логирование

Бот ведет подробные логи всех операций. Логи выводятся в консоль и содержат информацию о:

  • Подключении к Google API
  • Получении ответов на формы
  • Отправке уведомлений
  • Ошибках и предупреждениях

Безопасность

  • Не публикуйте файлы credentials.json и token.json
  • Добавьте их в .gitignore
  • Регулярно обновляйте токены доступа
  • Используйте минимально необходимые разрешения API

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors