Bot API
Long polling guide
Как читать update через `GET /v1/bot-api/updates` и не терять события.
1. Базовый запрос
Используйте `offset`, `limit` и `timeout`. Сервер вернёт только update с `update_id > offset`. При `timeout > 0` запрос подождёт новые события до указанного лимита.
curl -H "Authorization: Bearer <bot_token>" \ "https://api.yullama.ru/v1/bot-api/updates?offset=0&limit=50&timeout=30"
2. Ack-семантика
Подтверждение делается клиентом через следующий `offset`. Если вы обработали update `41`, следующий запрос должен идти минимум с `offset=41`. Тогда Bot API не вернёт этот update повторно.
3. Рекомендуемый цикл
Храните `lastSeenUpdateID`, после успешной обработки всех items обновляйте offset и сразу делайте новый poll. Если обработчик упал посередине пачки, не двигайте offset дальше последнего подтверждённого update.
let offset = loadOffset();
for (;;) {
const { items } = await client.bot.getUpdates({ offset, limit: 50, timeout: 30 });
for (const item of items) {
await handleUpdate(item);
offset = item.update_id;
}
}