Faire un bot Discord simple avec les webhooks

Un petit bot sans librairie et sans se prendre la tête !

a marqué ce sujet comme résolu.

Tout le monde se secoue ! :D

J’ai commencé (il y a une heure) la rédaction d’un tutoriel au doux nom de « Faire un bot Discord simple avec les webhooks » et j’ai pour objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limites pour dénicher le moindre pépin, que ce soit à propos du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à l’adresse suivante :

Merci !

Comme d’habitude, c’est mon "premier-jet-quasi-final-bourré-de-fautes". Donc soyez indulgent sur l’écriture, j’écris comme ca vient et je me suis pas encore relu !

+3 -0

J’ai la réputation de faire beaucoup de fautes alors ne prend pas ce que je dis pour argent comptant.

Et désolé si je te prend la tête. Vraiment c’est pas le but. Si tu veux, je peux faire les modifications dont je parle, j’ose pas les faire sans t’en parler avant.


Bref, j’ai attentivement relu ton tutoriel dans l’espoir d’accélérer la validation de celui-ci. Je veux dire, c’est un tutoriel basique que je trouve bien écrit alors bon.

Déjà pour commencer. Certains membres du site me tombent dessus (j’abuse un peu) quand j’utilise des anglicismes ^^"
Certainement que ça doit gêner la lecture aux francophones qui n’ont pas l’habitude d’utiliser ces anglicismes. Du coup, il faudrait remplacer « librairie » dans le sous-titre par « bibliothèque ».

Si vous vous promenez sur les réseaux de discussions de Discord, vous avez sûrement remarqué que ces derniers sont peuplés de bots qui postent des informations diverses et variées.

C’est la première phrase du coup, ça gène un peu. Surtout qu’au final ben j’ai pas trouvé tant de fautes que ça.

Pour le réaliser, tout sera écrist en python 3 vanilla, donc sans aucune librairie tierce.

  • librairie => bibliothèque

Mais un webhook qu’est-ce que c’est ?

Là, je suis chiant. Désolé mais c’est pour la validation, pas pour moi. Il y a un tiret entre « qu’est » et « ce ».

+1 Pour les listes qui respectent les règles de typographie 👏

Partie Émettons des messages

Passons maintenant à la partie amusante, l’émission de messages depuis notre bot vers le canal Discord.*

Car généralement, il n’y a pas qu’un message.

Comme dit plus tôt, l’objectif sera de simplement faire une requête POST vers l’URL que nous venons d’obtenir. Pour générer cette dernière, nous allons donc utiliser la librairie bibliothèque request incluse nativement dans python :

^^"

(jJ’en profite aussi pour importer les exceptions que cette dernière peut générer)

Je ne suis pas expert en typo. Mais il me semble que si une phrase entière est entre parenthèses alors elle prend une majuscule.

Ainsi, on apprend que le message doit contenir une payload json avec au choix :

Je ne sais pas quoi faire de ce mot anglais. 😱

Je vais uniquement parler des 2 deux premiers cas, le troisième étant plus particulier et tout de même simple une fois le principe compris.

Vous remarquez que notre payload va être transformée en chaîne de caractères via la fonction dumps de la librairie standard json, puis encodée en chaîne de type utf-8.

Je ne sais vraiment pas quoi faire de cet anglicisme. En tout cas, c’est la première fois que je vois quelqu’un l’utilisé comme mot féminin ! https://fr.wiktionary.org/wiki/payload

En fait, il nous manque deux choses dans les headers de notre requêtes.

headers peut-être ? Je veux dire on peut dire en-tête sans problème là ^^

Ensuite, les serveurs Ddiscord n’aimeent pas trop les requêtes fournies par la librairie bibliothèque python.

Cette mise en forme est aussi supportée dans les messages faits par des bots !

J’aurais peut-être utilisé le verbe écrire plutôt que le verbe faire mais ça c’est ton choix.

Les webhooks Discord nous permettent aussi de mettre en œuvre des messages plus complexes grâce au format embed.

Je ne sais pas quoi faire de embed

Concrètement, plusieurs champs sont disponibles pour construire un objet et tous sont facultatifs.

Voilà. C’est tout pour moi >///<

Je ne sais pas si les doubles quottes ne devraient pas être remplacées par des guillemets. Franchement je m’en fiche.

Bonne journée le caribou ^^

+1 -0

Nickel ! Merci pour le retour !

Pour le "embed", je vais le laisser en le mettant en italique. Ca me semble important car c’est comme ca qu’on le retrouvera dans la doc. Idem pour le "payload". C’est un terme technique qui revient souvent dans la (n’importe) quelle doc' anglaise. (payload qu’on pourrait traduire par "contenu/corps de la requête" je suppose). Sinon merci pour tout ce retour complet, précis et pertinent !

J’essairai de faire les modifs dans la semaine. Si tu veux les faire je les valides toutes, sauf pour les anglicismes, je préfèrerais qu’on en discute avant de les modifier (car autant library => bibliothèque me va bien, que les autres me semble trop "précis" pour être traduit sans perte de valeur).

+0 -0

Du coup, je me suis occupé de tout sauf des anglicismes (autres que librairie) que je laisse aux soins des validateurs. ^^

En espérant du coup que la validation soit plus rapide :D

+2 -0

Salut,

J’ai validé l’article sur le fond, et y’a pas de soucis (en soit c’est assez simple, donc pas de mystère). J’aimerais juste ajouter deux points concernant la conclusion et l’ouverture du tutoriel.

  • Pourquoi ne pas préciser que cette technique est valide pour tout ce qui accepte un webhook entrant, au passage ? Je suppose que Discord ne doit pas être le seul — on pourra par exemple citer IFTTT (et toutes les possibilités que ça implique).
  • Pourquoi ne pas ouvrir sur les méthodes plus avancées de création de bots Discord ? Tu mentionnes en introduction que c’est limité, mais tu ne dis nulle part comment passer outre cette limite. Alors certes, pour la majorité de la cible ce sera plus compliqué, mais ça ne me semblerait pas déconnant de mentionner l’existence de discord.py et de sa documentation, éventuellement avec un avertissement quant à la difficulté supérieure. Mais peut-être ne voulais-tu pas donner cette ouverture afin de ne pas avoir à faire de support sur une ligne de conclusion ? Ce qui pourrait, certes, faire sens.
+0 -0
Ce sujet est verrouillé.