Документация Справочник События gateway События gateway Все opcodes, коды закрытия и события DispatchEvent протокола gateway с пометкой, какие из них получают боты.
Справочник протокола gateway версии v=1. Как подключаться и обрабатывать события — в главе Gateway .
Opcodes#
Поле op кадра GatewayFrame. В JSON — полное имя, например "GATEWAY_OPCODE_DISPATCH".
Opcode Номер Направление Поле кадра GATEWAY_OPCODE_HEARTBEAT1 бот → сервер heartbeat { lastSeq }GATEWAY_OPCODE_IDENTIFY2 бот → сервер identify { token, device, capabilities }GATEWAY_OPCODE_RESUME3 бот → сервер resume { token, sessionId, seq }GATEWAY_OPCODE_PRESENCE_UPDATE4 бот → сервер setPresence { status, until }GATEWAY_OPCODE_TYPING5 бот → сервер typing { roomId }GATEWAY_OPCODE_SUBSCRIBE6 бот → сервер subscribe { roomIds }GATEWAY_OPCODE_RECONNECT7 сервер → бот reconnect {}GATEWAY_OPCODE_DISPATCH8 сервер → бот dispatch { <событие> }GATEWAY_OPCODE_INVALID_SESSION9 сервер → бот invalidSession { resumable }GATEWAY_OPCODE_HELLO10 сервер → бот hello { heartbeatIntervalMs }GATEWAY_OPCODE_HEARTBEAT_ACK11 сервер → бот heartbeatAck {}
Коды закрытия#
Код Имя Что делать боту 4000UNKNOWN_ERRORпереподключиться, RESUME; с причиной replaced by a new session — не переподключаться 4001UNKNOWN_OPCODEпереподключиться, RESUME 4002DECODE_ERRORпереподключиться, RESUME 4003NOT_AUTHENTICATEDпереподключиться, новый IDENTIFY 4004AUTHENTICATION_FAILEDне переподключаться: токен неверный 4007INVALID_SEQпереподключиться, новый IDENTIFY 4008RATE_LIMITEDподождать, RESUME 4009SESSION_TIMED_OUTпереподключиться, новый IDENTIFY 4010SESSION_REVOKEDне переподключаться: токен отозван или бот удалён 4011SESSION_EVICTEDкасается вкладок браузера; боту не встречается
События#
Событие — одно из полей DispatchEvent, в JSON — в lowerCamelCase. Колонка «Боту»: да — приходит боту по его правам; по условию — только при условии в описании; нет — боту не отправляется.
Сессия#
Событие Боту Описание readyда ответ на IDENTIFY: sessionId, me, workspaces[], dms[], readStates resumedда ответ на успешный RESUME: replayed — сколько событий переслано readStateUpdateда собственная отметка прочтения изменилась (с другого устройства или по PUT /api/rooms/{id}/read)
Пространства, участники, роли#
Событие Боту Описание workspaceCreate · workspaceUpdate · workspaceDeleteда бот вошёл в пространство · настройки изменились · пространство удалено или бот убран workspaceMemberAdd · workspaceMemberUpdate · workspaceMemberRemoveда участники: вступил, изменились роли или никнейм, ушёл workspaceBanAdd · workspaceBanRemoveпо условию баны — только с MANAGE_MEMBERS roleCreate · roleUpdate · roleDeleteда роли пространства badgeCreate · badgeUpdate · badgeDeleteда библиотека бейджей workspaceAchievementsUpdateда каталог ачивок пространства изменился userUpdate · presenceUpdateда профиль и присутствие участника botCreate · botUpdate · botDeleteпо условию боты пространства — только с MANAGE_BOTS (или владельцу бота) workspaceAppUpsert · workspaceAppDeleteнет веб-приложения пространства — только людям workspaceIdentityAccessUpdate— служебное событие SSO для сессий людей; если придёт — игнорируйте billingUpdateнет оплата — только владельцу пространства
Комнаты и сообщения#
Событие Боту Описание roomCreate · roomUpdate · roomDelete · roomPermissionsUpdateда комнаты, которые бот видит (или перестал видеть) categoryCreate · categoryUpdate · categoryDeleteда категории комнат messageCreate · messageUpdate · messageDeleteда сообщения видимых комнат и DM бота; у команды бота — message.command messageReactionAdd · messageReactionRemoveда реакции typingStartпо условию «печатает» — только в комнатах из SUBSCRIBE botCallbackпо условию нажатие кнопки — только боту-автору сообщения dmCreateда новый DM с ботом stickerPackCreate · stickerPackUpdate · stickerPackDeleteда стикерпаки пространства readReceiptнет отметки «прочитано» людей — ботам не отправляются roomNotificationUpdate · workspaceNotificationUpdate · dmStateUpdateнет настройки уведомлений и архив DM — у ботов их нет
Голос и звонки#
Событие Боту Описание voiceStateUpdateда кто в какой голосовой комнате; пустой roomId — вышел voiceStreamStart · voiceStreamStop · voiceCameraStop · voiceMovedда стримы, камера, перенос участника voiceDisconnectedда бота отключили от голоса roomRecordingда запись встречи в комнате началась или закончилась soundCreate · soundUpdate · soundDeleteда звуки пространства soundPlayпо условию только пока бот в звонке комнаты sipCallUpdateда телефонный звонок из комнаты набран или сменил статус roomAdmissionRequest · roomAdmissionDecidedпо условию гость ждёт впуска · решение принято — тем, кто решает (INVITE_GUESTS в комнате) callRing · callStateнет звонки один на один — не для ботов backgroundCreate · backgroundUpdate · backgroundDeleteнет* фоны камеры; у ботов нет камеры — игнорируйте
* Событие рассылается всему пространству и может прийти, но боту оно ни к чему.
Календарь#
Событие Боту Описание eventCreate · eventUpdate · eventDelete · eventRsvpда встречи, где бот организатор, и встречи видимых комнат; внешние адреса — только если бот может менять встречу roomEventActive · roomEventEndedда встреча в комнате началась · закончилась eventReminderнет напоминание участнику — бот участником встреч не бывает
Доски и задачи#
Событие Боту Описание boardCreate · boardUpdate · boardDeleteда доски — по VIEW_BOARD boardCategoryCreate · boardCategoryUpdate · boardCategoryDeleteда категории досок taskCreate · taskUpdate · taskDelete · taskActivityда задачи и записи их журнала taskChecklistUpdate · taskChecklistDeleteда чек-листы задач boardRuleUpdate · boardRuleDeleteда правила автоматизации доски taskGitLinksUpdateда Git-связи задачи taskNoticeпо условию уведомление человека о задаче — только боту, которого он выбрал
Прочее#
Событие Боту Описание notesCreate · notesUpdate · notesDeleteнет полки заметок — только людям diskItemUpsert · diskItemRemoveнет Диск — у ботов пока нет доступа
Совет
Новые события появляются без смены версии протокола. Неизвестное поле dispatch пропускайте — так бот не сломается при обновлении сервера.