Passer au contenu principal
channel.send(), message.reply(), user.send(), member.send() et le premier message de forum.createPost() prennent un MessageInput : un texte, ou un objet MessageOptions. interaction.reply() et webhook.send() prennent les mêmes options avec quelques changements, listés à la fin.
Comment utiliser tout cela est dans Envoyer des messages. Les messages que vous recevez sont décrits dans Message.

MessageInput

Un message à envoyer : son texte, ou ses options.

MessageOptions

Ce qu’un message peut contenir, et comment il est envoyé. Un message a besoin d’au moins un contenu, un embed, un fichier, un composant, un sticker ou un sondage.
string
Le texte du message (jusqu’à 2000 caractères).
(Embed | EmbedDeclaration<[]>)[]
Jusqu’à 10 embeds : écrits ici, ou déclarés avec embed(). Voir Embed et embed().
MessageComponent[]
Des boutons, des menus déroulants et des composants de mise en page, fabriqués par ChapterJS : des composants déclarés avec button(), select()… et row(), text(), container()… Voir Composants.
(FileInput | AssetFile)[]
Jusqu’à 10 fichiers à joindre : leur contenu, ou asset() pour un fichier de public/. Voir FileInput et asset().
AllowedMentions
Qui le message a le droit de notifier. Voir AllowedMentions.
Snowflake[]
Les identifiants de 3 stickers du serveur au plus.
PollInput
Un sondage à joindre au message. Voir PollInput.
boolean
Lit le message à voix haute.
boolean
Envoie le message sans son de notification.
boolean
N’affiche pas les aperçus des liens du message.
Snowflake | { id: Snowflake }
Le message auquel répondre.
Documentation de Discord

MessageEditOptions

Ce qui peut être changé dans un message déjà envoyé : message.edit() prend un texte, ou ces champs de MessageOptions. Seul ce que vous passez change : une liste vide retire les embeds ou les composants, et les fichiers que vous passez remplacent ceux du message.
string
Le texte du message (jusqu’à 2000 caractères).
(Embed | EmbedDeclaration<[]>)[]
Jusqu’à 10 embeds : écrits ici, ou déclarés avec embed().
MessageComponent[]
Des boutons, des menus déroulants et des composants de mise en page, fabriqués par ChapterJS : des composants déclarés avec button(), select()… et row(), text(), container()…
(FileInput | AssetFile)[]
Jusqu’à 10 fichiers à joindre : leur contenu, ou asset() pour un fichier de public/.
AllowedMentions
Qui le message a le droit de notifier.
boolean
N’affiche pas les aperçus des liens du message. false les affiche à nouveau.
Documentation de Discord

FileInput

Un fichier à joindre à un message. Chaque fichier est envoyé avec le message, et un embed peut l’afficher avec attachment://<name> comme url de son image ou de sa thumbnail.
string
requis
Le nom du fichier, avec son extension : chart.png.
Blob | Uint8Array | ArrayBuffer | string
requis
Le contenu du fichier.
string
Ce que montre le fichier, pour les personnes qui ne peuvent pas le voir.
boolean
Cache le fichier jusqu’à ce qu’on clique dessus.
string
Le type de média du fichier (image/png) ; déduit du nom quand il manque.
Documentation de Discord

asset()

Un fichier du dossier public/ du projet, à envoyer avec un message : files: [asset('photos/monday.png')]. Le fichier est lu au moment de l’envoi du message, donc un fichier manquant est une erreur à ce moment-là. asset s’importe de 'chapterjs' comme tout le reste, et est typé pour votre projet par le dossier .chapterjs/ : PublicFile est l’union des chemins de chaque fichier de public/, donc l’éditeur les liste et souligne celui qui n’existe pas. Le dossier est relu par chapterjs dev chaque fois qu’un fichier est ajouté ou retiré, et par chapterjs sync et chapterjs build. Comment l’utiliser est dans Fichiers.

PublicFile

Un fichier du dossier public/ de votre projet, sous forme de chemin depuis lui : 'photos/monday.png'. never tant que le dossier est vide ou absent.

AssetOptions

Ce qui peut changer pour un fichier de public/ quand il est envoyé.
string
Le nom sous lequel le fichier est envoyé ; par défaut son propre nom.
string
Ce que montre le fichier, pour les personnes qui ne peuvent pas le voir.
boolean
Cache le fichier jusqu’à ce qu’on clique dessus.
string
Le type de média du fichier (image/png) ; déduit du nom quand il manque.

AssetFile

Un fichier du dossier public/ du projet, fabriqué par asset(), à mettre dans les files d’un message. Il est lu au moment de l’envoi du message.
string
requis
Le nom sous lequel le fichier est envoyé, avec son extension.
string
requis
Le chemin du fichier dans public/.
string
Ce que montre le fichier, pour les personnes qui ne peuvent pas le voir.
boolean
Cache le fichier jusqu’à ce qu’on clique dessus.
string
Le type de média du fichier ; déduit du nom quand il manque.

Embed

Un encadré riche dans un message : titre, description, champs, image… Le même type décrit les embeds d’un message que vous recevez : les champs marqués « Réglé par Discord » sont remplis dans les messages que Discord renvoie, et ignorés quand vous en envoyez un.
string
Le titre de l’embed (256 caractères au plus).
string
Le texte de l’embed (4096 caractères au plus).
string
Le lien qu’ouvre le titre.
string
Une date affichée dans le pied, sous forme de texte ISO 8601 : new Date().toISOString().
number
La couleur de la bordure gauche, sous forme de nombre : 0x5865f2.
Le pied de l’embed.
EmbedImage
La grande image de l’embed.
EmbedImage
La petite image dans le coin en haut à droite. Mêmes champs que image.
EmbedAuthor
La ligne de l’auteur, au-dessus du titre.
EmbedField[]
Jusqu’à 25 champs, affichés sous la description.
'rich' | 'image' | 'video' | 'gifv' | 'article' | 'link' | 'poll_result'
Réglé par Discord : la sorte d’embed (toujours 'rich' pour les embeds qu’envoie un bot).
EmbedVideo
Réglé par Discord : la vidéo d’un embed fabriqué à partir d’un lien.
EmbedProvider
Réglé par Discord : le site d’où vient un embed fabriqué à partir d’un lien.
number
Réglé par Discord : les drapeaux de l’embed, sous forme de champ de bits.
Documentation de Discord

Limites des embeds

En dépasser une lève une erreur qui nomme le champ, avant tout envoi : voir Limites et erreurs.

AllowedMentions

Qui un message a le droit de notifier. Sans cela, un message notifie tous ceux qu’il mentionne.
('roles' | 'users' | 'everyone')[]
Les sortes de mentions du texte qui notifient : [] ne notifie personne.
Snowflake[]
Les identifiants des rôles à notifier (100 au plus).
Snowflake[]
Les identifiants des utilisateurs à notifier (100 au plus).
boolean
Pour une réponse, s’il faut notifier l’auteur du message auquel on répond. Par défaut false.
Documentation de Discord

PollInput

Un sondage à joindre à un message.
PollMedia
requis
La question du sondage. Seul text est pris en charge.
PollAnswer[]
requis
Chacune des réponses disponibles dans le sondage, jusqu’à 10.
number
Combien d’heures le sondage reste ouvert, jusqu’à 32 jours. 24 par défaut.
boolean
Si une personne peut choisir plusieurs réponses. false par défaut.
1
La disposition du sondage. Il n’y en a qu’une : 1, par défaut.
Documentation de Discord

Composants

components ne prend que ce que ChapterJS a fabriqué : les boutons, menus et formulaires déclarés avec button(), select() et modal(), et les helpers de mise en page (row(), linkButton(), text(), section(), container()…). Un objet simple est refusé avant tout envoi, donc aucun identifiant n’est jamais écrit à la main. Les boutons qui se suivent sont mis en rangées de 5 ; un menu a une rangée à lui. Un message avec un texte, une section, une galerie, un fichier, un séparateur ou un conteneur est construit uniquement avec des composants : Discord n’affiche ni content ni embeds, et le message le dit avant de partir si vous en passez un. Les pièces et leurs types sont listés dans Mise en page ; comment les utiliser est dans Boutons et Embeds et mise en page. Documentation de Discord

InteractionReplyOptions

Les options d’une réponse : tout ce que prend un message, sauf replyTo et stickers. C’est ce que prennent interaction.reply() et interaction.followUp(), sous forme de texte ou d’objet (InteractionReply) ; interaction.edit() prend un MessageEditOptions. Voir Interaction.
boolean
N’afficher la réponse qu’à qui a utilisé la commande. Par défaut : ce que dit la commande avec son propre ephemeral, sinon visible par tout le monde.
Documentation de Discord

WebhookMessageOptions

Ce que peut contenir un message publié avec un webhook : tout ce que prend un message, sauf replyTo, et ceci. C’est ce que prend webhook.send(), sous forme de texte ou d’objet.
string
Affiche ce nom au lieu du nom du webhook.
string
Affiche cet avatar au lieu de l’avatar du webhook.
Snowflake
Envoie le message dans ce fil du salon du webhook.
Documentation de Discord

Limites et erreurs

Chaque message est vérifié avant d’être envoyé, donc une erreur est une erreur dans votre code avec un message clair, pas un refus de Discord. Les nombres sont ceux de votre message. Le texte d’un embed est compté sans les espaces autour. Ce que ces vérifications ne couvrent pas (un customId faux, un sticker inconnu…) est refusé par Discord avec une DiscordApiError qui dit quel champ.