Mensagens
Enviar, editar, listar, apagar, reagir e fixar mensagens em canais de servidor.
Bots enviam e editam mensagens pela rota própria /api/bot/…, que aceita texto, embeds e componentes. As demais operações (listar, apagar, reagir, fixar) usam as rotas normais de servidor com o token do bot.
Nota
A API de bot funciona em canais de servidor (não em DMs, grupos nem threads). Canais de fórum recusam o envio por estas rotas.
Enviar mensagem
POST
/api/bot/servers/:serverId/channels/:channelId/messagesCorpo da requisição
| Campo | Tipo | Descrição |
|---|---|---|
content | string | Até 4000 caracteres. Menções: @usuario, @Cargo (mencionável) e @everyone/@here (com MENCIONAR_TODOS). |
embeds | Embed[] | Até 10. Veja Mensagens ricas. |
components | Component[] | Action Rows ou Components V2. |
flags | integer | 32768 = IS_COMPONENTS_V2. Padrão 0. |
replyToId | string | Responder a uma mensagem do mesmo canal. Ignorado se inválido. |
É obrigatório ter content, embeds ou components.
const res = await fetch(`https://nexapp.online/api/bot/servers/${serverId}/channels/${channelId}/messages`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${TOKEN}` },
body: JSON.stringify({ content: 'Olá, servidor!' }),
});
const { message } = await res.json();Resposta 200: { "message": Message }. Se a auto-moderação bloquear, 422 com automod: true.
Editar mensagem
PATCH
/api/bot/servers/:serverId/channels/:channelId/messages/:messageId- Campo ausente (ou
null) → mantém o valor atual. []emembeds/components→ remove."content": ""→ limpa o texto.
Só trocar o embed
await fetch(`${API}/bot/servers/${serverId}/channels/${channelId}/messages/${messageId}`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${TOKEN}` },
body: JSON.stringify({ embeds: [novoEmbed] }),
});Objeto Message
Message (campos principais)
{
"id": "uuid",
"serverId": "uuid",
"channelId": "uuid",
"threadId": null,
"fromId": "uuid do autor",
"content": "Olá!",
"type": "text", // 'text' | 'system' | mídia, áudio, enquete…
"createdAt": "…",
"editedAt": null,
"embeds": null,
"components": null,
"flags": 0,
"applicationId": "uuid | null", // preenchido em mensagens enviadas pela rota de bot
"commandName": null, // em respostas a slash command
"commandInvokerId": null,
"replyToId": null,
"replyTo": { "id": "…", "fromId": "…", "kind": "text", "preview": "…" } | null,
"mentions": ["userId"],
"mentionsEveryone": false,
"mentionedRoleIds": [],
"reactions": [],
"pinned": false
}Outras operações
Rotas normais de servidor que aceitam o token de bot (mesmas regras que para humanos):
GET
/api/servers/:serverId/channels/:channelId/messagesDELETE
/api/servers/:serverId/channels/:channelId/messages/:messageIdPOST
/api/servers/:serverId/channels/:channelId/messages/:messageId/reactPOST
/api/servers/:serverId/channels/:channelId/messages/:messageId/pinRota humana
Atenção
POST /api/servers/:serverId/channels/:channelId/messages também aceita token de bot, mas só envia texto (ignora embeds e componentes) e pode falhar com 403 se o servidor exigir aceitar regras ou nível de verificação. Prefira a rota de bot.Limites
| Item | Limite |
|---|---|
| Texto (rota de bot) | 4000 caracteres |
| Envio / edição | 10 a cada 10 s |
| Embeds por mensagem | 10 (6000 caracteres no total) |
| Componentes por mensagem | 40 em todos os níveis |