ICQ Open API обеспечивает веб-хуки, OAuth-аутентификацию и конструктор команд, позволяя подключить собственного бота к групповому чату за 15-20 минут. Ниже описаны ключевые действия, с которыми вы столкнётесь уже на этапе подготовки, прежде чем писать первую строку кода.
Создание приложения происходит в консоли разработчика my.icq.net. Сразу фиксируйте App ID и App Secret; они понадобятся при генерации токена доступа со сроком жизни 365 дней. Установите флаг «Allow group chats», иначе бот не сможет войти в многопользовательский канал.
Домен, на который ICQ будет посылать запросы, обязан поддерживать HTTPS и отвечать в течение 2 секунд. Рекомендуется настроить отдельный субдомен – так проще управлять сертификатами и изолировать логи от основного сайта. Проверку webhook-URL ICQ выполняет автоматически, поэтому отдайте статус 200 и текст «ok» даже до реализации логики.
Для первой ревизии используйте метод sendText; он покрывает все базовые сценарии: приветствия, уведомления, подтверждения. Формируйте JSON-тело строго по схеме 1.1: {"chatId": "...", "text": "...", "format": "plain"}
. Ошибки 400 и 401 ICQ возвращает с детализированным полем description – логируйте его, чтобы не искать причину в слепую.
После подключения добавьте бота в чат через @icq, указав App ID. Если чат приватный, пригласить может только администратор. Проверьте, что в настройках группы активирован пункт «Получать сообщения от ботов» – без него webhook не будет триггериться.
На тестовом этапе ограничьте частоту вызовов до 10 QPS. При превышении лимита ICQ отправит Retry-After; используйте экспоненциальную задержку – иначе получите бан на 1 час. Как только убедитесь, что бот отвечает стабильно, увеличьте лимит через форму «Raise rate limits» в консоли.
Следуя этим рекомендациям, вы подготовите инфраструктуру, убедитесь в корректности аутентификации и пройдёте первоначальную модерацию без дополнительных итераций.
Добавление бота в чат ICQ: пошаговое руководство
1. Подготовьте токен бота: авторизуйтесь на my.icq.net/bot, создайте нового бота, скопируйте выданный API-токен.
2. Проверьте, что клиент ICQ поддерживает ботов. Актуальные версии: десктоп ≥ 10.0, iOS ≥ 10.6, Android ≥ 10.6.
3. Сохраните идентификатор чата. Откройте нужный групповой чат, в адресной строке web-версии скопируйте параметр chatId=xxxxxxxxxxxxxxxx.
4. Пригласите бота командой:
/invitebot <token>
Если бот публичный, достаточно переслать его карточку в чат и подтвердить добавление.
5. Выдайте права. Откройте «Настройки → Участники → Боты», включите «Чтение сообщений» и, при необходимости, «Отправка сообщений».
6. Проверьте работоспособность. Отправьте команду /ping
; бот должен ответить «pong» за ≤ 2 сек.
Частая проблема | Решение |
---|---|
«Bot can’t be added» | Убедитесь, что чат не секретный и число участников < 2000. |
Нет ответа на /ping | Проверьте, что сервер ICQ api.icq.net доступен на 443/HTTPS. |
Бот видит только новые сообщения | В настройках бота включите «Receive all history». |
7. Зафиксируйте изменения. Сделайте резервную копию токена и chat_id в менеджере паролей.
8. Настройте автоматический рестарт процесса бота с помощью systemd:
Restart=always
RestartSec=3
Регистрация новой учётной записи бота в ICQ
Перейдите на страницу Bot API и нажмите «Create bot». Иконка шестерёнки открывает форму.
Укажите уникальное имя (до 32 символов, латиница, тире разрешены), загрузите квадратный PNG-аватар не более 1 МБ и задайте публичное описание (макс. 255 символов).
Сохраните сгенерированный токен – он отображается один раз. Сразу занесите его в защищённый менеджер паролей.
Добавьте контактный E-mail; подтверждение приходит мгновенно, без него Webhooks отключены.
В разделе «Allowed domains» впишите домены, с которых планируются запросы. Wildcard-маски не поддерживаются, список ограничен пятью позициями.
Настройте Webhook: POST-запрос на https://api.icq.net/bot/v1/events/setWebhook
с полями url
и token
. Убедитесь, что сервер отвечает 200 OK за ≤1 секунду; иначе ICQ помечает Webhook «inactive».
Проверьте регистрацию, отправив curl https://api.icq.net/bot/v1/self?token=ВАШ_ТОКЕН
; в ответе статус должен быть "ok"
.
Завершите процесс, добавив бота в свой список контактов и отправив команду /start
; это активирует подписку на события.
Получение и сохранение токена доступа API
Для авторизации бота ICQ требуется уникальный токен, который выдаётся сразу после регистрации приложения в панели разработчика my.icq.net. Без него отправка и приём сообщений невозможны.
- Войдите в аккаунт, перейдите в раздел «Мои приложения» и нажмите «Создать бота».
- Укажите название, короткое описание и задайте публичный @username. Нажмите «Сохранить».
- Система мгновенно сгенерирует строку формата
001.abcdef1234567890...
. Это и есть access_token. Сразу скопируйте его – повторно он не отображается.
Храните токен только в переменных окружения:
ICQ_TOKEN=001.abcdef1234567890…
добавьте в.env
.- Никогда не коммитьте .env в репозиторий; добавьте файл в
.gitignore
. - На прод-сервере задайте переменную через системный менеджер (systemd, Docker Secrets, AWS SSM).
Для локальных тестов используйте менеджер dotenv вашего языка. Пример для Python:
from os import getenv
TOKEN = getenv("ICQ_TOKEN")
При утечке токена немедленно перевыпустите его в панели разработчика: откройте карточку бота и нажмите «Regenerate». Старый токен тут же инвалидируется.
Настройка базовых параметров бота через Bot API
Сразу после регистрации ключа в @BotFather зафиксируйте его в переменной окружения ICQ_BOT_TOKEN
; избегайте хранения токена в открытом коде – используйте .env
-файл или секреты CI/CD.
Первое, что должен вернуть бот на запрос /start
, – сообщение, подтверждающее корректную конфигурацию: отправьте POST на https://api.icq.net/bot/v1/messages/sendText
с полями chatId
, text
и formatting=MarkdownV2
. Если в ответе приходит OK: true
и код 200 – бот готов к дальнейшим настройкам.
Задайте имя и описание: вызов /setname
и /setdescription
в BotFather меняет поля, отображаемые в профиле. Имя – до 64 символов, описание – до 512; эмодзи допустимы, HTML-теги – нет. После изменения сделайте GET на https://api.icq.net/bot/v1/self/get
, чтобы убедиться, что поля обновились.
Настройте команды меню с помощью JSON-массива: отправьте в BotFather /setcommands
, затем перечень вида [{"command":"help","description":"справка"},…]
. Ограничение – 32 команды, описание каждой не более 256 символов.
Ограничьте доступ к боту, если требуется приватный режим: добавьте ID разрешённых чатов в белый список внутри обработчика входящих webhook-сообщений. ICQ передаёт chatId
в каждом апдейте – проверяйте его до выполнения логики.
Установите webhook: POST на https://api.icq.net/bot/v1/webhooks/set
с параметром url
. Для тестов используйте ngrok или Cloudflare Tunnel, для продакшена – домен с HTTPS и валидным сертификатом. После успешной установки вернётся объект {"url":"...","status":"ok"}
.
Проверьте частоту обновлений: ICQ ограничивает 60 запросов в минуту на метод. Для интенсивных ботов внедрите очереди и backoff. Ошибка 429 указывает на превышение лимита – логируйте и анализируйте.
Включите режим «пишет…» для улучшения UX: перед долгими операциями вызывайте messages/sendActions
с typing
. ICQ автоматически скрывает индикатор через 5 секунд, поэтому обновляйте его, пока операция не завершится.
Задайте язык локали: при отправке сообщений передавайте заголовок Accept-Language
(например, ru-RU
). Так клиенты ICQ корректно форматируют даты и числа.
Наконец, зафиксируйте текущую конфигурацию в системе контроля версий и задокументируйте все эндпоинты и параметры; это сократит время на обслуживание и масштабирование бота.
Добавление бота в выбранный групповой чат
Перед началом убедитесь, что у вас есть:
- ID бота (uin) и токен авторизации, полученные в @icqdevbot.
- Права администратора в целевом групповом чате.
- Последняя версия приложения ICQ на десктопе или мобильном устройстве.
- Откройте чат, в который требуется добавить бота, и перейдите к сведениям о чате. На десктопе – клик по названию в верхней панели; на мобиле – нажмите «⋮» → «Информация».
- Нажмите «Участники» → «Добавить». В поле поиска введите uin бота целиком без пробелов. Если используется алиас, начните с «@» и введите первые символы названия.
- Выберите бота в списке результатов и подтвердите добавление. ICQ мгновенно отправит сервисное сообщение об успешном присоединении.
- Назначьте боту нужные роли:
- Для опросов и уведомлений достаточно статуса «Member».
- Для модерации или управления настройками задайте «Admin» и включите «Delete messages» или «Ban users» – зависит от логики бота.
- Сразу протестируйте подключение. Отправьте в чат команду, указанную в документации бота (чаще «/start»). В ответ должно прийти сообщение от бота с признаком активности (текст, меню, кнопки).
- Если бот не отвечает:
- Проверьте, что токен не утратил действительность (перегенерируйте через @icqdevbot при необходимости).
- Удостоверьтесь, что сервер бота принимает входящие запросы на 443 порте и отвечает не дольше 10 секунд – иначе ICQ прерывает попытку.
- Просмотрите логи вебхука: код HTTP 200 подтверждает доставку, остальные коды укажут на ошибку.
- Зафиксируйте изменения в системе контроля версий конфигурации (если бот развернут через Docker-compose или Kubernetes), чтобы доступные роли и uin не утерялись при деплое.
После этих шагов бот полноценно функционирует в указанном групповом чате ICQ и готов к работе по задуманному сценарию.
Назначение прав и ограничений для бота внутри чата
После добавления бота в чат ICQ необходимо четко определить его функциональные возможности и ограничения, чтобы обеспечить безопасность и комфорт пользователей. В настройках доступа рекомендуется задать конкретные права: например, разрешить боту отправлять сообщения и реагировать на команды, но запретить удаление сообщений других участников и изменение настроек чата.
Важно ограничить возможности бота по изменению состава участников: предоставлять права на добавление или удаление пользователей следует только при крайней необходимости и только доверенным ботам с проверенной репутацией. Это предотвратит случайные или злоумышленные действия, способные нарушить работу чата.
Для снижения риска спама и нежелательных уведомлений установите лимиты на частоту сообщений бота. Например, ограничьте количество сообщений в минуту или определите временные интервалы, когда бот активен. Это поможет избежать перегрузки пользователей и сохранить удобство общения.
Рекомендуется регулярно проверять логи активности бота, чтобы контролировать соблюдение заданных ограничений. При обнаружении нарушений – своевременно корректировать права или отключать проблемные функции.
Проверка работоспособности бота с помощью тестовых команд
После добавления бота в чат ICQ необходимо убедиться, что он корректно реагирует на запросы. Для этого используйте базовые тестовые команды, прописанные в настройках бота или документации разработчика.
Первичная проверка – отправьте команду ping. В ответ бот должен выдать pong или аналогичный сигнал подтверждения. Если ответ отсутствует, проверьте корректность токена и права доступа бота.
Далее протестируйте команды, связанные с основным функционалом бота. Например, для бота-помощника это может быть команда /help, которая должна вернуть список доступных функций или инструкций.
Если бот поддерживает интерактивные команды, отправьте запрос с параметрами, например /weather Москва – бот должен вернуть актуальный прогноз. Отсутствие ответа или некорректные данные укажут на ошибки в интеграции API или проблемах с интернет-соединением.
Рекомендуется проводить тестирование в том же чате, где бот будет использоваться, чтобы исключить проблемы с настройками приватности и правами в группах.
Для углубленной диагностики используйте журнал активности бота, если он предусмотрен. Логи помогают выявить ошибки обработки команд и исключения в работе скрипта.
Если тестовые команды работают стабильно и корректно, значит, бот успешно интегрирован и готов к эксплуатации.
Настройка автоматического обновления и мониторинга логов
Для автоматического обновления бота используйте планировщик задач cron (Linux) или Task Scheduler (Windows). В crontab добавьте команду запуска скрипта обновления с необходимой периодичностью, например, каждые 6 часов:
0 */6 * * * /usr/bin/python3 /путь/к/боту/update_bot.py
Убедитесь, что скрипт корректно обрабатывает ошибки и возвращает статус завершения. Для Windows создайте задачу с триггером по времени и укажите путь к интерпретатору и скрипту.
Для мониторинга логов настройте ротацию с помощью logrotate (Linux). В конфигурационном файле задайте размер файла логов (например, 50 МБ) и количество хранимых архивов (не более 5). Это предотвратит переполнение диска и облегчит анализ.
Используйте утилиты tail или less для просмотра логов в реальном времени. Рекомендуется настроить фильтрацию по ключевым событиям – успешным командам, ошибкам подключения, исключениям.
Для автоматического оповещения о критических ошибках подключите отправку уведомлений на почту или в мессенджер через скрипт, запускаемый при появлении записи с уровнем ERROR в логах. В Linux это можно реализовать через systemd-сервисы с механизмом Watchdog.
Рекомендуется сохранять логи в формате JSON или с четкой структурой для удобства парсинга и анализа с помощью инструментов мониторинга, например ELK-стека или Grafana Loki.
Важна регулярная проверка состояния службы бота через системные инструменты (systemctl или tasklist), чтобы автоматическое обновление не прерывалось из-за зависаний или сбоев.
Вопрос-ответ:
Как добавить бота в чат ICQ?
Чтобы добавить бота в чат ICQ, откройте нужный чат и нажмите на кнопку управления участниками. Затем выберите опцию «Добавить участника» и введите имя или ID бота. После выбора бота подтвердите действие, и он появится в вашем чате.
Какие требования к боту для его добавления в чат ICQ?
Бот должен быть зарегистрирован в системе ICQ и иметь соответствующий статус, позволяющий ему работать в групповых чатах. Также у вас должны быть права администратора в чате, чтобы приглашать новых участников, включая ботов.
Можно ли добавить несколько ботов в один чат ICQ? Если да, то как это сделать?
Да, в чат можно добавить несколько ботов. Процесс такой же, как и при добавлении одного бота: для каждого из них необходимо выполнить поиск по имени или ID и добавить по отдельности через меню управления участниками.
Какие функции могут выполнять боты в чатах ICQ?
Боты в ICQ могут выполнять разные задачи — от автоматических ответов и помощи с информацией до организации опросов и отправки новостей. Их возможности зависят от того, как они запрограммированы и какие разрешения им даны в чате.
Что делать, если бот не отвечает после добавления в чат ICQ?
В первую очередь убедитесь, что бот активен и корректно настроен. Проверьте, есть ли у него необходимые разрешения в чате. Иногда помогает повторное добавление бота или перезапуск приложения ICQ. Если проблема сохраняется, стоит обратиться к разработчику бота или в службу поддержки ICQ.