Intent del gateway Discord: cosa può ascoltare un bot
Gli intent del gateway sono opzioni che un bot dichiara quando si connette, per dire a Discord quali gruppi di eventi in tempo reale vuole ricevere. Un bot che non ha richiesto un intent semplicemente non riceve quegli eventi, il che protegge i dati e mantiene basso il traffico.
Cos'è il gateway
Un bot mantiene una connessione costante con Discord, chiamata gateway. Attraverso di essa Discord invia gli eventi man mano che accadono: è stato inviato un messaggio, un membro è entrato, qualcuno sta scrivendo, un canale vocale è cambiato. Senza limiti, ogni bot riceverebbe ogni evento di ogni server.
Gli intent sono il filtro. Nel primo messaggio che un bot invia dopo la connessione, elenca gli intent che vuole come un unico numero. Discord invia allora solo gli eventi corrispondenti.
Gli intent più comuni
- Guilds: server, canali e ruoli creati o modificati. Quasi tutti i bot lo usano.
- Messaggi del server: messaggi nei canali del server. Il testo di quei messaggi richiede un intent privilegiato, vedi sotto.
- Stati vocali: chi entra o esce dai canali vocali. Musica e strumenti vocali lo richiedono.
- Moderazione: ban e voci del registro di controllo.
- Reazioni ai messaggi: reazioni aggiunte o rimosse.
Tre intent sono speciali: presenza, membri del server e contenuto dei messaggi. Sono intent privilegiati, perché espongono più dati personali e richiedono un'approvazione extra per i bot più grandi.
Perché interessa ai proprietari dei server
Quando un bot è online ma ignora messaggi, ingressi o cambi nella voce, un intent mancante è una causa comune. Può anche spiegare una disconnessione con il codice di errore 4014, quando un bot chiede un intent privilegiato che non è attivo nelle sue impostazioni. L'articolo su bot offline e gli errori di gateway 4004 e 4014 lo spiega.
Gli intent sono anche un segnale sulla privacy. Un bot che chiede solo ciò che serve alle sue funzioni è più affidabile.
Intent e Noxyr
Il bot principale di Noxyr è gestito per te. Se configuri un bot personalizzato con una tua applicazione, devi attivare Intent Membri del server e Intent Contenuto dei messaggi nel Portale per sviluppatori Discord, come spiega la guida alla configurazione. Servono per funzioni come i messaggi di benvenuto e i comandi con prefisso. Se un bot personalizzato è offline, inizia dalla guida al bot offline.
Per maggiori dettagli, vedi gli intent privilegiati del gateway spiegati.
Controllare un bot che non hai scritto
Se un bot installato si comporta in modo strano, chiedi al suo sviluppatore quali intent usa e perché. I bot seri li elencano nella documentazione. Per un bot tuo, apri il Portale per sviluppatori, vai alla pagina Bot e confronta gli interruttori con ciò che il codice richiede. Una differenza è la prima cosa da sistemare.
Domande frequenti
Cosa succede se un bot non richiede un intent?
Discord non gli invia gli eventi corrispondenti. Il bot resta online ma non può reagire a quelle cose.
Dove attivo gli intent per il mio bot?
Nel Portale per sviluppatori Discord apri la tua applicazione, vai su Bot e attiva gli intent privilegiati che servono.
Tutti gli intent sono privilegiati?
No. Solo presenza, membri del server e contenuto dei messaggi lo sono. Gli altri si possono usare liberamente.