ITDO Bot API
Создавайте ботов для автоматизации сообщений в ITDO. API использует Bearer-токены и совместим с обычным HTTPS-клиентом.
Версия API: v1 · Base URL: https://itdo.bleyzos.ru/api/bot/v1.php
Быстрый старт
- Откройте Настройки → Мои боты.
- Создайте бота и сохраните токен. Он показывается только при создании или регенерации.
- Передавайте его в заголовке
Authorization: Bearer bot_....
Важно: токен нельзя помещать в браузерный JavaScript, URL, Git или логи. При утечке нажмите «Новый токен» в настройках.
60API-запросов в минуту
20сообщений в минуту
4000символов в сообщении
Методы
GET
?method=getMeПроверяет токен и возвращает профиль бота.
curl -sS 'https://itdo.bleyzos.ru/api/bot/v1.php?method=getMe' \ -H 'Authorization: Bearer bot_YOUR_TOKEN'
POST
?method=sendMessageОтправляет текст в чат, где бот является участником.
curl -sS -X POST 'https://itdo.bleyzos.ru/api/bot/v1.php?method=sendMessage' \
-H 'Authorization: Bearer bot_YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"chat_id":123,"text":"Привет из бота"}'GET
?method=getUpdatesВозвращает новые сообщения для polling. После обработки сохраняйте последний update_id и передавайте его как offset.
curl -sS 'https://itdo.bleyzos.ru/api/bot/v1.php?method=getUpdates&offset=0&limit=50' \ -H 'Authorization: Bearer bot_YOUR_TOKEN'
Лимиты и антиспам
| Правило | Значение |
|---|---|
| Все API-запросы | 60 в минуту на бота |
| Исходящие сообщения | 20 в минуту на бота |
| Дубликаты | Одинаковый текст в том же чате за 30 секунд подавляется |
| Длина текста | До 4000 символов |
| Чаты | Только чаты, где бот состоит участником |
При HTTP 429 дождитесь количества секунд из заголовка Retry-After. Не создавайте несколько ботов для обхода лимитов.
Безопасность
- Храните токен в переменной окружения или secret manager.
- Используйте HTTPS и проверяйте сертификат.
- Не принимайте команды от пользователей, которым бот не должен отвечать.
- Ограничивайте частоту polling и корректно обрабатывайте сетевые ошибки.
- При компрометации токена сразу регенерируйте его.
Сейчас поддерживается polling через
getUpdates. Webhook пока не включён.Пример Node.js
const base = 'https://itdo.bleyzos.ru/api/bot/v1.php';
const token = process.env.ITDO_BOT_TOKEN;
async function call(method, body) {
const response = await fetch(`${base}?method=${method}`, {
method: body ? 'POST' : 'GET',
headers: {
Authorization: `Bearer ${token}`,
...(body ? { 'Content-Type': 'application/json' } : {})
},
body: body ? JSON.stringify(body) : undefined
});
const data = await response.json();
if (!response.ok) throw new Error(data.error || response.statusText);
return data.result;
}
console.log(await call('getMe'));