Pular para o conteúdo

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_INTENT e a lista do que vale em validIntents.

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,members

As famílias

IntentNo padrãoO que ela trazEventos
messagessimMensagem escrita, editada e apagada nos canais de texto.message_create, message_update, message_delete
reactionssimReação alternada. É esta família que alimenta reaction_add e reaction_remove no SDK.reaction_update
typingnãoAlgué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
memberssimQuem entrou, quem saiu e o vínculo de quem ficou.member_add, member_remove, member_update
channelssimCanal criado, editado e removido.channel_create, channel_update, channel_delete
rolessimCargo criado, editado e removido.role_create, role_update, role_delete
serversimO servidor ele mesmo: identidade, forma e exclusão.server_update, server_delete
profilessimO perfil de alguém mudou. Sem payload: o evento carrega uma revisão e você relê o que precisa.profile_update
interactionssimAlguém acionou algo deste App.interaction_create
platformsimO 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.