Référence

Événements et payloads

Consommez les dispatches Gateway de façon prévisible malgré les reprises, les trous et les nouveaux champs.

Enveloppe de dispatch

Chaque trame Gateway possède un champ op. Les événements de dispatch transportent aussi d pour le payload et une séquence s croissante dans la session courante. Ne conservez la dernière séquence qu’après l’acceptation durable de l’événement par votre traitement.

json
{
  "op": "MESSAGE_CREATE",
  "s": 42,
  "d": {
    "id": "<message_id>",
    "channel_id": "<channel_id>",
    "content": "Hello"
  }
}

Familles d’événements courantes

FamilleExemplesIntent
Structure communautaireGUILD_CREATE, GUILD_UPDATE, CHANNEL_CREATE, ROLE_UPDATEGUILDS
MembresGUILD_MEMBER_ADD, GUILD_MEMBER_UPDATE, GUILD_MEMBER_REMOVEGUILD_MEMBERS
MessagesMESSAGE_CREATE, MESSAGE_UPDATE, MESSAGE_DELETEGUILD_MESSAGES ou DIRECT_MESSAGES
RéactionsMESSAGE_REACTION_ADD, MESSAGE_REACTION_REMOVEIntent de réaction correspondant
InteractionsINTERACTION_CREATEGUILDS et installation de l’application
Présence et saisiePRESENCE_UPDATE, TYPING_STARTIntents explicites à volume élevé

Sémantique de livraison

  • Les dispatches sont ordonnés dans une même session active
  • Une session reprise peut rejouer les trames suivant last_seq
  • Le rejeu est limité en temps, nombre et octets ; INVALID_SESSION impose une réconciliation REST
  • Les traitements doivent être idempotents par ID de ressource et séquence
  • Les champs et noms d’événements inconnus doivent être ignorés

REST reste la source de vérité

Les événements Gateway signalent des changements, ils ne forment pas un journal permanent. Après expiration du rejeu, relisez la ressource concernée via REST avant de traiter les nouveaux événements.