Aller au contenu principal

Événements

S'abonner​

receiver.on('match.card', ({ match, team, booking }, context) => {
console.log(context.id, context.timestamp, booking.type)
})

receiver.on('*', (data, context) => log(context.event, data))

receiver.off('match.card')

Chaque gestionnaire reçoit le payload, typé d'après le nom de l'événement, et un contexte :

  • id : l'identifiant de livraison, stable entre les tentatives, à utiliser comme clé d'idempotence ;
  • event : le nom de l'événement ;
  • timestamp : la date d'émission déclarée par le service.

on('*', …) reçoit tous les événements, et off() retire tous les gestionnaires d'un événement. Tous les types sont exportés par @fca.gg/lfp-webhooks/types, dont LfpEventMap, la table qui associe chaque nom d'événement à son payload.

Calendrier​

ÉvénementPayload
match.scheduledmatch : le match annoncé (Fixture)
match.rescheduledmatch, previousDate, date
match.schedulematch : le programme détaillé (ScheduledMatch), avec stade, diffuseurs et lien pour regarder
match.broadcasters_updatematch : le même, quand les diffuseurs changent

Avant-match​

ÉvénementPayload
match.lineupmatch, official, assistants, et pour homeTeam / awayTeam : formation, kit, manager, players

Périodes​

match.kickoff, match.half_time, match.second_half, match.extra_time_first_half, match.extra_time_second_half, match.shootout, match.full_time, match.abandoned et match.postponed partagent le même payload :

  • match : le résumé du match ;
  • stats : début, arrêt et durée de chaque période ;
  • homeTeam / awayTeam : stats (possession, tirs, tirs non cadrés, arrêts, au total et par mi-temps), goals, bookings, substitutions.

Les listes sont complètes depuis le début du match : filtrez sur period si vous ne voulez que la dernière. De quoi publier un récapitulatif sans appeler l'API.

Faits de jeu​

ÉvénementPayload
match.goalmatch, team (home ou away), score, goal
match.goal_confirmedle même, une fois le but confirmé (par exemple après la vidéo)
match.goal_cancelledmatch, team, score, goal sous forme réduite
match.cardmatch, team, booking
match.card_confirmedle même, une fois le carton confirmé
match.card_cancelledmatch, team, booking sous forme réduite
match.substitutionmatch, team, substitution (subOff, subOn)

Un but porte son type (goal, own ou penalty), sa minute, sa période, le buteur, les passeurs, et originalDecision quand il est passé par la vidéo. Un carton porte sa couleur (Yellow, Red), son type (Yellow, SecondYellow, StraightRed), sa raison, et le joueur ou l'entraîneur sanctionné.

Les joueurs d'un fait de jeu sont réduits à id, showName et number : le poste, le buste et les statistiques appartiennent à la composition. Relisez-les dans match.lineup ou avec le client de l'API.

remarque

La period d'un carton ou d'un remplacement est traduite depuis le code Opta quand il est connu, et laissée telle quelle sinon : ne la traitez pas comme une liste fermée.

État et classement​

ÉvénementPayload
match.updatel'état complet du match (MatchSnapshot) : stade, résultat, arbitres, et pour chaque équipe score, entraîneur, buts, joueurs, cartons, remplacements et statistiques
standings.updatecompetition, season, table : le classement, ligne par ligne

Le résumé du match​

Presque tous les événements portent match, un résumé du match : matchId, competition, season, matchDay, period, matchTime, watchUrl, et pour homeTeam / awayTeam : id, name, short, score et logo.