Intents
Famílias de evento declaradas na conexão. São otimização de banda com um nome que você já conhece — e não são fronteira de segurança.
Como declarar
const app = createApp({ intents: ["messages", "reactions", "members"] });Omitir a opção entrega o conjunto padrão. O SDK ainda avisa quando você registra um handler de família que não declarou — em vez de deixar você procurando um evento que nunca vem.
- Parâmetro ausente: você recebe o conjunto padrão. Não é preciso aprender o vocabulário antes do primeiro olá.
- Parâmetro presente e vazio: recusa, com
EMPTY_INTENTS. É bug de quem integra — uma variável que não foi preenchida —, e responder "então nada será filtrado" esconderia o defeito. - Nome desconhecido: recusa, com
UNKNOWN_INTENTe a lista do que vale emvalidIntents.
Referência de transporte
No fio
O que viaja no fio, para transparência, depuração e compatibilidade — não é um segundo jeito de construir App. Se você está escrevendo um App, o SDK já faz isto.
GET /api/apps/eventos?intents=messages,reactions,membersAs famílias
| Intent | No padrão | O que ela traz | Eventos |
|---|---|---|---|
messages | sim | Mensagem escrita, editada e apagada nos canais de texto. | message_create, message_update, message_delete |
reactions | sim | Reação alternada. É esta família que alimenta reaction_add e reaction_remove no SDK. | reaction_update |
typing | não | Alguém está escrevendo. A única que fica FORA do conjunto padrão: é a que mais custa banda e a que menos App usa. | typing_start |
members | sim | Quem entrou, quem saiu e o vínculo de quem ficou. | member_add, member_remove, member_update |
channels | sim | Canal criado, editado e removido. | channel_create, channel_update, channel_delete |
roles | sim | Cargo criado, editado e removido. | role_create, role_update, role_delete |
server | sim | O servidor ele mesmo: identidade, forma e exclusão. | server_update, server_delete |
profiles | sim | O perfil de alguém mudou. Sem payload: o evento carrega uma revisão e você relê o que precisa. | profile_update |
interactions | sim | Alguém acionou algo deste App. | interaction_create |
platform | sim | O que vale para a instância inteira: flag de recurso e comunicado oficial. | feature_update, announcement_publish |
O conjunto padrão
Omitir o parâmetro entrega tudo, menos typing. É a família que mais custa banda — uma tecla de cada pessoa, em cada canal, de cada servidor instalado — e a que menos bot usa. Deixá-la no padrão cobraria de todo integrador o preço de um recurso que quase nenhum deles quer. Quem a quer, declara.
O que não existe
- Família sensível — ainda não há nenhuma. Nenhuma intent pede aprovação hoje: o que você alcança já está decidido pela instalação e pelo funil. A sensibilidade é um eixo próprio no desenho, separado de escopo e de permissão, e o dia em que a primeira família sensível existir ela aparecerá num bloco à parte da tela de autorização — não como um escopo a mais.
- Bitfield. Os nomes viajam como texto, separados por vírgula. Nada de somar potências de dois.
- Família de presença. Presença de gente está fora do alcance de qualquer App, e anunciar uma família que nada entrega seria promessa que o Gateway não cumpre.