Aperçu
Un abonnement webhook peut être configuré avec un filtre d’entité. Un filtre d’entité est un type d’entité (par exemple surface de jeu ou partie), plus une liste d’identifiants d’entités de ce type.
L’API de filtre d’entité Webhook prend en charge la solution webhook de jeu en direct de PlayHQ ; plus d’informations peuvent être trouvées ici.
Conditions d’utilisation
Identifiants API Play HQ
Utilisation du filtrage webhook
Un partenaire d’intégration peut ne souhaiter recevoir qu’un sous-ensemble de tous les webhooks. Par exemple ;
- Un opérateur de tableau de pointage fixe n’a besoin que des webhooks de jeu en direct pour les parties jouées aux endroits où il opère un tableau de pointage.
- Un opérateur de tableau de pointage mobile n’a besoin que des webhooks de jeu en direct pour les parties pour lesquelles il a organisé le déploiement d’un de ses tableaux de pointage mobiles.
Pour faciliter cela, un abonnement webhook peut être configuré avec un filtre d’entité. Un filtre d’entité est un type d’entité (par exemple surface de jeu ou partie), plus une liste d’identifiants d’entités de ce type. Par exemple ;
- Un opérateur de tableau de pointage fixe utiliserait un filtre de type PLAYING_SURFACE, avec une liste d’identifiants des surfaces de jeu où il a installé des tableaux de pointage. Cette liste ne changerait pas très souvent - juste en ajoutant occasionnellement un nouvel ID chaque fois qu’il installe un nouveau tableau de pointage.
- Un opérateur de tableau de pointage mobile utiliserait un filtre de type GAME, avec une liste d’identifiants des parties pour lesquelles il a organisé le déploiement de ses tableaux de pointage. Un opérateur de tableau de pointage mobile ajouterait régulièrement de nouveaux IDs de parties à venir à cette liste.
Un webhook ne sera envoyé à un abonné que s’il passe le filtre d’entité de l’abonné. Par exemple, pour déterminer si l’opérateur de tableau de pointage fixe doit recevoir un webhook d’événement de jeu en direct donné, notre répartiteur vérifiera la surface de jeu sur laquelle la partie est jouée, et n’enverra le webhook que si l’identifiant de la surface de jeu figure dans le filtre PLAYING_SURFACE de l’abonné. De même, l’opérateur de tableau de pointage mobile ne recevra un webhook de jeu en direct que si l’ID de la partie figure dans son filtre GAME.
Lorsque les filtres sont configurés, ils apparaîtront au niveau supérieur des charges utiles des webhooks abonnés. Voici un exemple de ce à quoi ressemble une charge utile de webhook avec filtres ;
"messageId": "12d5f1f1-49ea-422c-bfb0-33a8eb3f2e38",
"eventType": "LIVE_GAME.DETAIL_UPDATED",
"entityId": "dd5cdf44-3fa3-4885-bc7f-79edade26124",
"eventRaisedDateTime": "2022-06-29T19:26:22.546Z",
"filters": [
{
"entityType": "PLAYING_SURFACE",
"entityId": "204ac60d-e19d-43af-83c5-041145db72a0
}
],
"data": {...
Le tableau de filtres est conçu pour être utilisé en collaboration avec l’API de filtre et sera rempli en fonction des filtres que votre abonné a configurés. Si vous avez choisi de vous abonner aux parties sur une surface de jeu particulière, alors tous les événements webhook de parties liés contiendront l’ID de la surface de jeu.
Configuration
Comme l’API de filtre est un point de terminaison privé, vous devrez vous authentifier en utilisant le locataire (par exemple ca, nzc, afl), la clé d’identification du client API et le secret comme première étape. Veuillez visiter notre site Documentation technique pour plus d’informations.
- En UAT, veuillez vous authentifier avec une requête POST en utilisant l’URL : https://api.uat.playhq.com/auth
- En PRODUCTION, veuillez vous authentifier avec une requête POST en utilisant l’URL : https://api.playhq.com/auth
Lorsqu’il est créé pour la première fois, le type d’entité du filtre est défini, mais la liste des IDs est vide. Cela signifie qu’au départ, l’abonné ne recevrait aucun webhook. Il revient ensuite au partenaire d’intégration d’utiliser les API de filtre d’entité Webhook, décrites ci-dessous, pour ajouter/supprimer/lister les IDs dans le filtre selon les besoins.
Ressources
Paramètres communs des routes
Toutes les routes API dans ce document partagent la même route de base :
/partner/v1/webhooks/subscribers/:subscriberId/subscriptions/:subscriptionId/filters/:entityType
| :subscriberId | L’ID unique pour votre abonné webhook. Un abonné représente le point de terminaison auquel les webhooks seront envoyés. |
| :subscriptionId | L’ID unique représentant un abonnement à un domaine particulier de webhooks. Un abonné peut avoir plusieurs abonnements. Par exemple, si un abonné souhaite recevoir des webhooks de création/mise à jour/suppression de grade, et des webhooks de jeu en direct, il aura deux abonnements distincts, chacun avec son propre ID. |
| :entityType |
Le type d’entité par lequel les webhooks d’un abonnement sont filtrés, par exemple PLAYING_SURFACE ou GAME. Puisque les filtres appartiennent aux abonnements, pas aux abonnés, un abonné pourrait choisir de recevoir, par exemple, tous les webhooks de grade (en n’ayant pas de filtre sur son abonnement webhook de grade), mais seulement certains webhooks de jeu en direct (en ayant un filtre sur son abonnement webhook de jeu en direct). |
Filtres pris en charge selon le type d’entité webhook
| Type d’entité Webhook | Filtres pris en charge |
|
GAME
|
GAME, PLAYING_SURFACE |
|
LIVE_GAME
|
GAME, PLAYING_SURFACE |
Lister
GET
/partner/v1/webhooks/subscribers/:subscriberId/subscriptions/:subscriptionId/filters/:entityType/ids
Liste les IDs actuellement présents dans le filtre.
Exemple de corps de réponse :
{
"ids":
[
"952a73fa-cef1-4571-b2d6-2504cc8b75ee",
"225d9b8e-e890-4452-ba23-207b735bf911"
]
}
Créer
PUT
/partner/v1/webhooks/subscribers/:subscriberId/subscriptions/:subscriptionId/filters/:entityType/ids/:entityId
Ajoute un nouvel ID au filtre. En cas de succès, un code de statut 200 est renvoyé, avec un corps de réponse vide.
Supprimer
DELETE
/partner/v1/webhooks/subscribers/:subscriberId/subscriptions/:subscriptionId/filters/:entityType/ids/
entityId
Supprime un ID d’un filtre. En cas de succès, un code de statut 200 est renvoyé, avec un corps de réponse vide.
Cette opération est idempotente, donc aucune erreur n’est renvoyée si l’ID d’entité n’est pas présent dans le filtre.
Ajout/suppression en masse
À l’heure actuelle, il n’existe pas d’API pour ajouter ou supprimer en masse des IDs dans un filtre. Plusieurs requêtes PUT/DELETE doivent être effectuées, une pour chaque ID.