Как ChatGPT помог мне решить проблему с уведомлениями от TG-бота Яндекс Директа
В статье расскажу, как при помощи ChatGPT удалось дополнить уведомления от Яндекс Директа нужной мне информацией (названиями клиентов). Спойлер: пришлось создать свой Telegram-бот и интегрировать его с Google Sheets для объединения данных.
Суть проблемы. У меня подключен официальный Telegram-бот с уведомлениями от Яндекс Директа, который помогает следить за актуальным остатком средств на балансах клиентов. Это очень удобно, но есть проблема — мы работаем через сервис eLama, который генерирует все логины по определенной схеме ("e-" / "elama-" + числовой идентификатор). В результате уведомления приходят в следующем виде:
В службе поддержки мне ответили, что технической возможности передавать название клиента в Telegram нет. Поэтому я решила создать костыль в виде бота, которому можно было бы пересылать уведомления от официального бота, а он бы связывал название клиента и его логин в Директе посредством интеграции с Google Sheets. За помощью я обратилась к ChatGPT.
Кстати, небольшой лайфхак для аналогичной проблемы с уведомлениями по email. Там у меня настроены правила обработки писем, и если в заголовке / теле письма содержится логин аккаунта, то автоматически проставляется метка с названием клиента.
Сразу покажу, что в итоге получилось, а ниже будет пошаговая инструкция по реализации такого решения.
Инструменты:
- Google Sheets API — для хранения и управления данными аккаунтов и клиентов.
- Python — для обработки данных и взаимодействия с API.
- TeleBot — для отправки сообщений в Telegram.
- PythonAnywhere — для автоматизации выполнения скрипта.
Пошаговая инструкция:
Шаг 1: Подготовка таблицы в Google Sheets
Создайте таблицу в Google Sheets, в которой будут указаны все аккаунты и связанные с ними клиенты.
Шаг 2. Настройка доступа к Google Sheets
Для работы с Google Sheets необходимо создать учетные данные (credentials) для доступа к таблице:
- Перейдите на https://console.cloud.google.com/.
- Войдите в свою учетную запись Google.
- Создайте новый проект в Google Cloud.
- Перейдите в раздел "API & Services" → "Credentials" и выберите "Create Credentials" → "Service Account".
- Когда аккаунт создан, добавьте ему роль "Editor" (Редактор) или "Owner" (Владелец).
- Нажмите "Create Key" и выберите формат JSON. Сохраните этот файл на своём компьютере. Этот JSON-файл будет использоваться в коде для доступа к таблице.
- Перейдите в настройки доступа к таблице и предоставьте доступ на редактирование сгенерированному сервисному аккаунту (электронная почта будет в JSON-файле, который вы скачали ранее).
Шаг 3: Создание Телеграм бота
- Откройте Телеграм и найдите бот "BotFather".
- Введите команду /newbot и следуйте инструкциям для создания нового бота.
- После создания вы получите API-ключ, который понадобится в коде.
Шаг 4: Написание и запуск скрипта для обработки сообщений
Пишем скрипт, который будет:
- Принимать уведомления от бота.
- Искать в таблице Google Sheets соответствие аккаунта и клиента.
- Формировать новое сообщение с добавлением названия клиента.
- Отправлять обновленное сообщение в Телеграм.
Создайте файл на компьютере с расширением .py, например, bot.py. Откройте этот файл в текстовом редакторе и вставьте следующий код:
- Функция find_client_by_account ищет клиента в таблице Google Sheets по названию аккаунта.
- Когда бот получает уведомление, он вытаскивает из него название аккаунта, ищет клиента и отправляет обратно обновлённое сообщение с данными о клиенте.
Пояснения к коду:
- Замените path_to_your_credentials.json на путь к JSON-файлу, который вы скачали из Google Cloud.
- Замените YOUR_TELEGRAM_BOT_API_KEY на ваш API-ключ, который вы получили от BotFather.
Шаг 5: Запуск бота на PythonAnywhere
Шаг 5.1. Регистрация на PythonAnywhere
Для начала нужно зарегистрироваться на платформе PythonAnywhere — это облачная среда для запуска Python-скриптов. Процесс регистрации очень простой: указываете свою почту и пароль, и спустя пару минут вы уже можете приступить к работе.
Шаг 5.2. Загружаем скрипт бота
- После регистрации перейдите в раздел Files.
- Найдите свою домашнюю директорию (обычно /home/имя_пользователя/).
- Загрузите туда файл вашего бота. В этом же разделе можно загружать любые другие файлы, которые потребуются вашему боту для работы, например, JSON с ключами для API.
Шаг 5.3. Установка зависимостей
- Перейдите в раздел Consoles и откройте консоль Bash.
- Установите все необходимые библиотеки для работы вашего бота. Для этого выполните команду:
Это самые популярные библиотеки для работы с Google Sheets и Telegram API.
Шаг 5.4. Настройка окружения
- В разделе Web создайте новое веб-приложение. Выберите Python 3.x.
- В качестве каталога приложения укажите папку, в которой находится ваш бот.
- В настройках веб-приложения укажите файл вашего бота как исполняемый скрипт. Это важно для того, чтобы бот мог работать через веб-хуки.
Шаг 5.5. Запуск скрипта вручную
- В разделе Consoles откройте новую консоль Bash.
- Выполните следующую команду, чтобы запустить ваш скрипт:
Если осталась вопросы — пожалуйста, задавайте в комментариях.