Skip to main content

Les webhooks

Vivement demandé par la communauté (et surtout les développeurs) il fut un temps, Discord décida d'implémenter le système de webhook. Nous n'allons pas nous embêter à t'expliquer tout sur le webhook, Discord a très bien fait ça. Lis donc l'article à ce sujet !

Etape 1 : comprendre ce qu'est un webhook

Un webhook, c'est comme un tube pneumatique pour faire passer des messages d'un endroit à l'autre. Le premier endroit, ce serait l'application que tu utilises pour envoyer le webhook. L'endroit de destination, c'est un canal écrit Discord. Le message, bah c'est le contenu du webhook (un message texte, une intégration, ...). Et le tube pneumatique, c'est l'API de Discord!

Futurama Pipeline

Pour utiliser un webhook, tu as besoin de deux choses :

  1. son ID, qui permet à Discord de savoir sur quel tuyau le webhook pointe (pour envoyer le message) ;
  2. son token, qui permet de s'authentifier auprès de Discord ("coucou, c'est moi j'peux passer svp?").

Toute entité nécessitant une authentification possède donc un token (les webhooks, les bots et même toi en tant qu'utilisateur) et c'est extrêmement précieux! Ne partage jamais ton token.

Maintenant que c'est dit, passons à la suite. Ces deux choses nécessaires se trouvent dans l'URL fourni par Discord lors de la création du webhook. Lien URL qui ressemble à ce qui suit :

https://discord.com/api/webhooks/472492847115927582/-r0SIJM4rOZ5aIrOrgtaPi1z1PByun1LwqcXRDcNH3LOfn3lERlMcJBHdTOgwNDQ5BuM
https://discord.com/api/webhooks/ ID / TOKEN

Etape 2 : mettre en place le webhook

créer un webhook dans un channel Discord

Etape 3 : utiliser le webhook pour communiquer

L'API de Discord, majoritairement développée en Python, transmet des données. Ces données sont donc généralement véhiculées à travers un format commun, qu'on appelle le JavaScript Object Notation. C'est la représentation en chaîne de caractères d'un objet en Javascript.

  1. Pour construire un webhook, nous utilisons un outil de visualisation en ligne (https://leovoel.github.io/embed-visualizer/).

    ⚠️ Il faut activer le "mode webhook" afin que le contenu JSON soit valide!

  2. Pour envoyer un webhook, nous utilisons une application qui permet d'émettre des requêtes HTTP. Nous utilisons Insomnia mais il en existe d'autres, comme Postman par exemple.