Skip to content

Instantly share code, notes, and snippets.

@Snipees
Last active November 18, 2023 17:56
Show Gist options
  • Save Snipees/608a97bc81c4003991876f7d7e6dc77b to your computer and use it in GitHub Desktop.
Save Snipees/608a97bc81c4003991876f7d7e6dc77b to your computer and use it in GitHub Desktop.
Discord Webhook pour Dealabs.com (french)

Discord Webhook pour Dealabs.com

La fonction Webhooks intégrée à Discord est une façon simple de recevoir des messages automatisés et des mises à jour directement dans un salon textuel de votre serveur. Voyez cela comme un de ces tubes pneumatiques qui sont parfois utilisés pour envoyer de l'argent à l'intérieur d'une banque et que vous pouvez regarder disparaître, mais au lieu de ne jamais revoir votre argent, vous verrez effectivement des messages partagés dans Discord à partir d'une autre plateforme. -- référence: principes des Webhooks.

Exemple
Exemple de rendu, avec le flux RSS

Il y a 2 possibilités pour récupérer les bons plans de Dealabs, soit par ses flux RSS, soit par son compte Twitter. Il est possible de cumuler les deux, le flux Twitter servant alors de mise en avant de certains deals. Nous allons voir comment récupérer ces 2 flux sur votre serveur Discord.

Création du webhook sur Discord

  1. Créez un salon textuel, ou cliquez sur Modifier le salon d'un salon textuel existant.
  2. Accédez à la section Webhooks, puis cliquez sur le bouton Créer un webhook.
  3. Renseignez un nom et une icône, cela a peu d'importance car ils seront personnalisés plus tard (dans la réponse de l'applet IFTTT). Copiez l'URL du Webhook. Ne partagez pas cette URL! C'est très dangereux, car elle permet de poster dans le salon!
  4. Cliquez sur Enregistrer puis ressortez des paramètres du salon.

Création de l'applet sur IFTTT, pour un flux RSS

Rendez vous sur le site IFTTT et créez votre compte (si vous n'en avez pas encore).

If this

  1. Dans le menu My Applets, cliquez sur le bouton New Applet
  2. Cliquez sur [+]this
  3. Recherchez le service RSS Feed et sélectionnez-le
  4. Sélectionnez le déclencheur New feed item, afin que l'applet envoie un message sur Discord à chaque fois qu'un nouveau deal apparait dans le flux RSS
  5. Renseignez le champs Feed URL avec l'adresse du flux RSS souhaité. (cf. liste des adresses des flux disponibles, ci-dessous)
[Tous les deals] : https://www.dealabs.com/rss
[Uniquement les deals Hot] : https://www.dealabs.com/rss/hot
[Uniquement les bons plans] : https://www.dealabs.com/rss/bons-plans
[Uniquement les codes promo] : https://www.dealabs.com/rss/codes-promo

# Flux RSS par catégorie:
[Catégorie informatique] : https://www.dealabs.com/rss/groupe/informatique
[Catégorie téléphonie] : https://www.dealabs.com/rss/groupe/telephonie
[Catégorie jeux-vidéo] : https://www.dealabs.com/rss/groupe/consoles-jeux-video
[Catégorie gadgets] : https://www.dealabs.com/rss/groupe/accessoires-gadgets
[Catégorie logiciels] : https://www.dealabs.com/rss/groupe/applis-logiciels
[Catégorie image/son] : https://www.dealabs.com/rss/groupe/image-son-video
[Catégorie jouets] : https://www.dealabs.com/rss/groupe/jeux-jouets
[Catégorie culture] : https://www.dealabs.com/rss/groupe/culture-divertissement
[Catégorie sports] : https://www.dealabs.com/rss/groupe/sports-plein-air
[Catégorie animaux] : https://www.dealabs.com/rss/groupe/animaux
[Catégorie mode] : https://www.dealabs.com/rss/groupe/mode-accessoires
[Catégorie santé] : https://www.dealabs.com/rss/groupe/hygiene-sante-cosmetiques
[Catégorie maison] : https://www.dealabs.com/rss/groupe/maison-jardin
[Catégorie voyages] : https://www.dealabs.com/rss/groupe/voyages-sorties-restaurants
[Catégorie alimentation] : https://www.dealabs.com/rss/groupe/alimentation-boissons
[Catégorie services] : https://www.dealabs.com/rss/groupe/services-divers
  1. Cliquez sur le bouton Create trigger pour confirmer.

Then that

  1. Cliquez sur [+]that
  2. Recherchez le service Webhooks et sélectionnez-le
  3. Sélectionnez l'action Make a web request
  4. Collez votre URL du Webhook dans le champs URL
  5. Choisissez la méthode POST (Method)
  6. Choisissez le type de contenu application/json (Content Type)
  7. Et voilà la partie la plus difficile, créer le corps du JSON. Je vous épargne les recherches, voici un exemple de Body adapté au flux RSS de Dealabs. Mais retenez que c'est personnalisable à volonté (cf. section Astuces plus bas). Collez simplement le code ci-dessous dans le champs Body:
{
  "username": "Dealabs",
  "avatar_url": "https://i.imgur.com/QTG38xr.png",
  "embeds": [
    {
      "title": ":hot_pepper: <<<{{EntryTitle}}>>>",
      "description": "<<<{{EntryContent}}>>> [*continuer vers le deal*]({{EntryUrl}})",
      "color": 16734003,
      "footer": {
        "text": "posted on {{EntryPublished}}",
        "icon_url": "https://i.imgur.com/85ZcySw.png"
      }
    }
  ]
}

Ou bien, vous pouvez utiliser la fonction de prévisualisation d'un lien de Discord, en envoyant juste le lien vers le deal, de cette manière:

{
  "username": "Dealabs",
  "avatar_url": "https://i.imgur.com/QTG38xr.png",
  "content": "**Nouveau deal:** {{EntryUrl}}"
}

Ce qui produira ceci:

Rendu simple
Rendu d'un lien Dealabs

Si vous utilisez le flux RSS d'une catégorie, préférez celui-ci:

{
  "username": "Dealabs",
  "avatar_url": "https://i.imgur.com/QTG38xr.png",
  "embeds": [
    {
      "author": {
        "name": "{{FeedTitle}}",
        "url": "{{FeedUrl}}",
        "icon_url": "url_image_pour_la_categorie"
      },
      "title": "<<<{{EntryTitle}}>>>",
      "description": "<<<{{EntryContent}}>>> [*continuer vers le deal*]({{EntryUrl}})",
      "url": "{{EntryUrl}}",
      "color": 16734003,
      "footer": {
        "text": "posted on {{EntryPublished}}",
        "icon_url": "https://i.imgur.com/85ZcySw.png"
      }
    }
  ]
}
  1. Cliquez sur le bouton Create action puis sur Finish
  2. C'est terminé!

Création de l'applet sur IFTTT, pour Twitter

Rendez vous sur le site IFTTT et connectez-vous à votre compte.

If this

  1. Dans le menu My Applets, cliquez sur le bouton New Applet
  2. Cliquez sur [+]this
  3. Recherchez le service Twitter et sélectionnez-le
  4. Sélectionnez le déclencheur New tweet by a specific user, afin que l'applet envoie un message sur Discord à chaque fois qu'un nouveau tweet apparait sur le compte Twitter de Dealabs
  5. Renseignez le champs Username to watch avec le nom du compte Twitter souhaité, ici: "Dealabs"
  6. Cliquez sur le bouton Create trigger pour confirmer.

Then that

  1. Cliquez sur [+]that
  2. Recherchez le service Webhooks et sélectionnez-le
  3. Sélectionnez l'action Make a web request
  4. Collez votre URL du Webhook dans le champs URL
  5. Choisissez la méthode POST (Method)
  6. Choisissez le type de contenu application/json (Content Type)
  7. Encore une fois, je vous épargne les recherches (chanceux :)), voici un exemple de Body adapté aux tweets de Dealabs. Collez simplement le code ci-dessous dans le champs Body:
{
  "username": "{{UserName}}",
  "avatar_url": "https://i.imgur.com/QTG38xr.png",
  "content": "<<<{{Text}}>>>\n*tweeted on {{CreatedAt}}*"
}

Ou bien comme précédemment, vous pouvez utiliser la fonction de prévisualisation d'un lien de Discord, en envoyant juste le lien vers le tweet, de cette manière:

{
  "username": "{{UserName}}",
  "avatar_url": "https://i.imgur.com/QTG38xr.png",
  "content": "**Nouveau deal:** {{LinkToTweet}}"
}

Ce qui produira ceci:

Rendu simple
Rendu d'un lien Twitter
  1. Cliquez sur le bouton Create action puis sur Finish
  2. C'est terminé!

Problèmes connus

  • Vous avez pu remarquer que le corps des messages issus d'un flux RSS, renseigné par l'ingrédient EntryContent, contient des balises HTML. Ces balises ne sont pas interprétées par Discord, car il n'accepte que le langage Markdown. Je suis activement à la recherche d'une solution pour contourner ce problème.
  • Le flux RSS ne semble pas contenir l'image du deal, la seule manière de l'obtenir est de passer par l'envoi simple du lien du deal (comme décrit plus haut).

Astuces

  • Pour les flux RSS, utilisez de préférence les flux d'une catégorie particulière. Vous pouvez créer autant d'applets IFTTT que de catégories souhaitées. Vous pouvez réutiliser l'URL du Webhooksur plusieurs applets. Vous pouvez alors, par exemple, personnaliser le message envoyé pour chaque catégorie, en modifiant la valeur de la couleur (de la barre verticale, sur la gauche du message).
  • Découvrez les principes des webhooks sur Discord, en consultant ce guide.
  • Apprenez à mettre en forme vos messages Discord, en utilisant le langage Markdown.
  • Apprenez à personnaliser la réponse de l'applet IFTTT (le body JSON) en utilisant ce guide. (en anglais uniquement)
  • Visualisez votre réponse personnalisée, en utilisant cet outil de rendu visuel du body JSON. N'oubliez par de cliquer sur le bouton Enable webhook mod. Pour personnaliser la couleur, utilisez le bouton Open color picker.
  • Simulez l'envoi de message vers Discord grace à l'application Postman, et en utilisant ce guide. (en anglais uniquement). Plus besoin d'attendre que l'applet IFTTT soit déclenché 😉

Les Webhooks Discord n'ont désormais plus aucun secret pour vous !

@Eyyonn
Copy link

Eyyonn commented Aug 27, 2021

Salut Snipees,

Es-tu au courant du problème suivant: lorsque l'on souhaite connecter un webhooks, voilà ce que IFTTT nous dit (PJ). J'ai essayé sur 2 navigateurs différents.
Capture

@Snipees
Copy link
Author

Snipees commented Sep 5, 2021

Salut @Eyyonn,
Ce tuto est un peu vieux maintenant, je ne sais pas s'il est toujours d'actualité.
Je n'utilise plus les services de IFTTT depuis qu'ils ont commencé à les faire payer.
En tout cas c'est étrange ce que tu montres, soit IFTT a un souci [temporaire], soit le lien que tu utilises ne fonctionne plus.

@Jeanyvon22
Copy link

Bonjour Snipees, si jamais tu utilise a une nouvelle alternative je suis grandement preneur

Sinon, je suis en recherche pour être notifié, sur discord toujours, lorsque des messages sont postés dans certain canaux de discutions

@Wisdom067
Copy link

Salut @Snipees

J'aimerais savoir, serait il possible de choisir les informations retranscrit par le bot ? Genre définir un mot clefs ; tags dans une catégorie ? Genre si je veux que le bot retransmets que les annonces de carte graphique dans la catégorie "informatique" (par exemple) ?

Ou bien que je sois à la recherche du jeu Tekken 3 sur PS1 et donc le bot me donnerait que les informations avec mot clefs ou tag que je souhaite et non toutes les informations récentes d'une catégorie ? Afin de limité le spam

Si tu vois ce que je veux dire ? Car ceci est pas mal, mais juste le spam que cela produit qui peut être embêtant. Donc c'est pourquoi, je voulais savoir si cela était possible ?
Si oui, serais-tu m'indiquer la ligne à rajouter ? Car j'ai tenté de chercher sur google mais je n'ai rien trouvé de concret manque de temps :(

S'il te plaît, merci par avance

@Otherside2710
Copy link

Hello @Snipees ,

Utilise tu une alternative à Snipees ?
Si oui, laquelle utilise tu ?

merci à toi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment