Discord
Discord permet la création de Webhooks pour permettre d'interagir avec un serveur/canal avec des requêtes HTTPs. Une utilisation commune et simple de ces Webhooks est d'envoyer des messages automatisés à partir d'un autre système. On peut penser ici à un système de surveillance qui fera parvenir des alertes à un canal Discord auquel plusieurs techniciens pourraient souscrire pour réagir à différentes situations telles que des pannes réseau ou des évènements de sécurité.
Création du Webhook
Création d'un serveur Discord
Un API/Webhook doit évidemment être lié à un canal, il faut donc tout d'abord créer un serveur. Un serveur peut contenir plusieurs canaux et chaque clé de Webhook est associé à un canal comme il sera abordé plus tard. Ceci peut être utile pour trier les alertes par systèmes ou catégories. Créez tout d'abord un serveur.
Pour avoir un serveur avec le moins d'options préconfigurées, sélectionnez "Create My Own" et créez le "pour un club ou une communauté". Vous pourrez ajouter vos collègues ou tout autre acteur ayant besoin de consulter ces alertes.
Une fois le modèle de canal sélectionné, il vous sera demandé de nommer votre serveur. Ce nom est un nom d'affichage seulement et n'a donc pas besoin d'être unique sur toute la plate-forme. Le code pour le Webhook sera unique et lié à un identifiant unique situé derrière le serveur.
Configuration de la clé d'API permettant l'interaction avec le Webhook
À fin de permettre l'interaction avec le serveur et plus spécifiquement un canal, il faudra créer une intégration pour votre serveur. Dirigez-vous dans "Server Settings" puis dans ""
En cliquant sur le Webhook créé, vous pourrezl e renommer et sélectionner le canal auquel vous désirez l'assigner.
En copiant l'URL du Webhook, vous serez dorénavant prêts à envoyer des messages dans votre canal à partir de requêtes HTTPS.
Utilisation du Webhook
Le concept d'un Webhook plutôt qu'un API est que l'on présente tout simplement l'information au serveur et on le laisse l'interpréter sans plus d'interaction. Un API est plus souvent utilisé pour demander une information. Chaque plate-forme nécessitera une formule différente pour faire parvenir un message au serveur.
Envoi d'un message dans un canal
Pour envoyer un message dans un canal, il faudra envoyer un objet JSON comprenant le contenu du message par méthode POST au serveur. Ceci peut être facilement effectué à l'aide de la commande cURL.
Le contenu de l'object peut être aussi simple que le suivant :
{"content": "message"}
La structure de la commande cURL devra mentionner le format de réponse que l'on peut interpréter, le type de contenu qui sera envoyé au serveur ainsi que les données contenues dans le POST de la requête.
curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X POST -d '{"content": "message"}' https://discord.com/api/webhooks/[server ID]/[api key]
Les options de la commande peuvent être décortiquées comme tel :
- -i permet d'afficher les en-têtes lors de la réception de la réponse
- -H permet d'envoyer une option d'en-tête avec notre requête
- La première option mentionne le format de contenu que l'on acceptera
- La deuxième option indique au serveur le format de données qu'on lui acheminera
- -X stipule la méthode de transfert de données, dans ce cas-ci, le contenu du message sera acheminé par POST
- -d contient les données qui seront envoyées au serveur. Dans ce cas-ci, il s'agit de l'objet JSON contenant notre message.
L'URL contacté par la commande cURL est le lien qui est copié lorsque l'on clique sur "Copy Webhook URL".








