# Kit di Costruzione per Discord Bot 🤖

**URL:** https://meta.discourse.org/t/discord-bot-construction-kit/122530
**Category:** Plugin
**Tags:** pavilion
**Created:** [10 Luglio 2019, 8:29am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530 "2019-07-10T08:29:26Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [10 Luglio 2019, 8:29am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/1 "2019-07-10T08:29:26Z")

</div>

# Scopo di questo plugin

Questo plugin svolge diverse funzioni:

1. Consente di far funzionare un bot Discord utilizzando il tuo server Discourse per collegare i due sistemi. Forka questo repository ed espandilo con semplici script Ruby per creare tutte le funzionalità di bot possibili.

2. Funzionalità esistenti da utilizzare come esempi e utility utili:

- Fornisce una pubblicazione automatica bidirezionale di contenuti che soddisfano determinati criteri.
- Comando per copiare messaggi ad hoc su Discourse.
- Comando per sincronizzare l’appartenenza ai gruppi con l’assegnazione dei ruoli sul tuo server Discord e la tua istanza Discourse.

Il plugin offre una struttura estensibile su cui puoi costruire funzionalità aggiuntive. Le PR per aggiunte generalmente utili sono benvenute.

 ![image](https://global.discourse-cdn.com/meta/original/3X/7/3/738ada03886a6fa1198f026e2ee276f4fa891683.png)  
questi non sono i due comandi di sincronizzazione, ma solo un’illustrazione dell’interazione del bot possibile. Il secondo comando nello screenshot è stato deprecato durante lo sviluppo 😉

La configurazione è necessariamente complessa, ma è ottima per gli appassionati di entrambi i sistemi che sono disposti a dedicare tempo a comprendere il funzionamento di ciascun sistema, almeno a livello funzionale e concettuale. Per ottenere il massimo da questo plugin, è necessario comprendere alcuni fondamenti del funzionamento della gestione degli utenti di Discourse e Discord.

# Comandi del Bot

Ci sono quattro comandi:

1. Ping!
2. !disckick
3. !discsync
4. !disccopy

## Ping!

Per verificare se il bot risponde, digita semplicemente “Ping!” e il bot dovrebbe rispondere con “🤖 : Pong!” - meraviglioso, vero? 😃 (a proposito, questo è un meme!)

## !disckick \<min\_trust\_level: default 2\>

Digitando questo comando, verrai espulso qualsiasi utente che esiste sul tuo Discourse ma con un Livello di Fiducia _inferiore_ al valore fornito. Il valore predefinito, se non ne fornisci uno, è 2.

ad esempio:

 ![image](https://global.discourse-cdn.com/meta/original/3X/3/1/316693634d232c6eddebde88f59ba9c540802b20.png)

## !discsync \<clean up: default false, min\_visibility: default 0, include automated groups: default false\>

Questo comando tenterà di copiare tutti i gruppi nei Ruoli di Discord che corrispondono ai criteri forniti (o ai valori predefiniti se non forniti). Successivamente, tenterà di popolare i ruoli in base all’appartenenza ai Gruppi su Discourse. È una sincronizzazione unidirezionale. Nessun dato di Discourse viene mai modificato.

## !disccopy \<number\_of\_messages\> \<optional\_target\_category\_name\> \<optional\_target\_topic\_name\>

Consente di copiare la cronologia dei messaggi di Discord nella tua istanza Discourse direttamente dalla chat di Discord. Può gestire migliaia di messaggi in una sola volta (ma per tale volume richiederà del tempo).

## Comunicazione bidirezionale

Ecco le impostazioni

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/c/5cf01946d6d8d9b76700eca6226fb92bf0e2a5e3.png)

- Puoi designare un Canale Annunci su Discord nelle impostazioni del plugin.
- Ora puoi digitare nel Canale Annunci di Discord assegnato e questo invierà il tuo messaggio al tuo Argomento Discourse assegnato nelle impostazioni del plugin.
- Puoi impostare un elenco di Categorie su Discourse per pubblicare nel canale Annunci del tuo Discord se qualcuno pubblica lì o aggiunge un nuovo Argomento (uno o entrambi).
- Copia automatica della chat per messaggio, da canale a qualsiasi Categoria con lo stesso nome su Discourse: se il nome del canale corrisponde al nome della Categoria, il messaggio verrà copiato su Discourse.

![image](https://global.discourse-cdn.com/meta/original/3X/0/8/08cae3dcb28fcf4bf49eda20ca558e3c9d61b59d.png)

Inoltre, ho aggiunto un nuovo file per gestire gli eventi di Discord supportati dall’API `discordrb`, con la logica degli Annunci come primo esempio (sentiti libero di svilupparne di nuovi e inviare una PR se sono utili in generale alla comunità).

NB Per qualsiasi messaggio copiato su Discourse da Discord, **l’Utente verrà mostrato correttamente** se quell’utente ha effettuato l’accesso a Discourse utilizzando l’accesso con Discord (quindi il Bot Discord è in grado di abbinare gli utenti).

# Stato di questo plugin

Questo è un plugin complesso da configurare. Era quasi inevitabile.

Tuttavia, è un gioco da ragazzi usarlo una volta che è tutto attivo e funzionante.

Considera il codice attualmente in **Beta**. È stato testato, anche in Produzione, ma potrebbe contenere bug. Consiglio di testarlo prima su un nuovo server Discord prima di applicarlo al tuo server Discord principale “Produzione”, a meno che tu non stia appena iniziando.

Qualsiasi bug è molto più probabile che disturbi la tua istanza Discord rispetto a quella di Discourse, poiché non vengono apportate modifiche a Discourse. Tuttavia, l’ho scritto in modo che la maggior parte delle cose sia recuperabile e puoi semplicemente ripetere un’azione per risolvere un problema, di solito. Discourse viene utilizzato come master per le informazioni di appartenenza e di gruppo e questi dati vengono utilizzati per aggiornare l’appartenenza e i Ruoli sul tuo server Discord.

# Istruzioni per la configurazione

## Prerequisiti

1. Un server Discord su cui sei Amministratore
2. Un’app Discord (vedi sotto)
3. Un bot Discord (vedi sotto)
4. Accesso SSH root al tuo server Discourse
5. Aggiornamenti a app.yml per installare il plugin
6. Tutti gli utenti del tuo Discourse dovranno effettuare l’accesso utilizzando il login OAuth di Discord che apparirà sulla tua pagina di accesso una volta installato il plugin.

## App Discord

Vai qui e crea un’app:

> **[Discord for Developers](https://discord.com/developers/applications/)**
>
> Build games, experiences, and integrations for millions of users on Discord.

Clicca su “New Application”

Dovrai creare un Bot e avrà un aspetto simile a questo (lascialo non ‘pubblico’):

 ![image](https://global.discourse-cdn.com/meta/original/3X/b/9/b9547b49ff146e242a7f76dc81809de0577839f9.png)

Dovrai autorizzare il bot nel browser, vedi [OAuth2 - Documentation - Discord](https://discordapp.com/developers/docs/topics/oauth2#bot-authorization-flow)

Una volta configurato il bot, copia il Token. Dovrai inserirlo in Discourse in seguito.

## Modifiche a app.yml

### plugin

Ora ti serve un solo plugin, dato che il Social Login di Discord è ora nativo nel core di Discourse (wooo 🎉 )

> **[GitHub - merefield/discourse-discord-bot: A Discord bot that runs on your Discourse server...](https://github.com/merefield/discourse-discord-bot)**
>
> A Discord bot that runs on your Discourse server to link the two servers.

Quindi al prompt esegui `./launcher rebuild app` come al solito.

Questo dovrebbe funzionare, nessun problema.

Potresti ricevere alcuni errori nella console e nei log che indicano un fallimento del bot al primo build, poiché non hai ancora inserito le credenziali del bot nell’interfaccia delle impostazioni di Discourse. (gestire questo in modo più elegante è un compito da fare, cancellerò questa parte quando sarà completato). Tuttavia, non farà alcun danno e Discourse stesso funzionerà normalmente.

Una volta nell’area di amministrazione di Discourse, vai alle Impostazioni del Plugin e compila questi campi:

 ![image](https://global.discourse-cdn.com/meta/original/3X/b/d/bd5c37ba66193897da5181ff13edba7bed8f7c3e.png)

Otterrai gli ID dall’interfaccia di Discord. Dovrai attivare la Modalità Sviluppatore per permetterti di copiare questi ID. In Discord, vai alle tue Impostazioni → Aspetto → AVANZATO e abilita la Modalità Sviluppatore:

 ![image](https://global.discourse-cdn.com/meta/original/3X/c/2/c2317c0addd3c8b39e52177f3cd6b002f3370d5f.png)

Puoi quindi ottenere gli ID dall’interfaccia, ad esempio:

 ![image](https://global.discourse-cdn.com/meta/original/3X/9/3/93d494762d22b4136e24c7782ba253e9446414cb.png)

Dovrai anche compilare le Impostazioni OAuth di Discord. L’ID Client e il Segreto provengono dalla tua stessa App Discord.

 ![image](https://global.discourse-cdn.com/meta/original/3X/d/1/d10a9d5fbf1a79eb5def802a43d7da861a52721a.png)

Una volta impostati questi, torna al prompt root in Linux e digita:

`./launcher restart app`

Se hai configurato correttamente i tuoi server Discord e Discourse, dovresti vedere il bot unirsi al server.

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/d/5d89371933b15ca3c65e438ff52e7c0519edee4b.png)

Se mai il bot si blocca (andrà offline), dovrai fare la stessa cosa per farlo tornare. Una maggiore indipendenza del bot dal server core di Discourse è un compito da fare. Detto questo, ho eseguito un bot in Produzione per molto tempo e non si è mai bloccato.

## Comandi futuri?

Se hai un’idea per un altro comando che sfrutta il collegamento tra Discourse e Discord e che ritieni utile per la comunità più ampia, fammelo sapere nelle risposte e possiamo valutare la possibilità di implementarlo. NB questo bot non è inteso per eseguire attività al di fuori dell’ambito di Discourse.

## Limitazioni

L’obiettivo principale di questo plugin era consentire all’utente di creare un bot sul proprio Discord che fosse alimentato dal proprio server Discourse e in grado di eseguire alcune funzioni di base di gestione dell’appartenenza. Fornisce anche una base per eventuali interazioni aggiuntive simili a bot tra i due sistemi per il futuro. Parte della motivazione per l’uso dei bot è che sono semplicemente _divertenti_.

I comandi del bot sono per loro natura ad hoc.

## Problemi noti

- ~~Il bot avvierà un’istanza di se stesso se entri in una sessione di console rails sul server. Questo farà sì che il bot sembri rispondere due volte (ma in realtà ora ci sono due bot). Nella console rails, fermare semplicemente il bot aggiuntivo digitando: `::DiscordBot::Bot.discord_bot.stop`~~ Ora non dovrebbe più essere necessario!

- ~~Il Robot è un po’ loquace durante gli aggiornamenti di Discourse ‘online’ poiché continua a essere riattivato durante il processo di aggiornamento. Questo porta a trovare un buon modo per eseguire il bot in un processo separato e gestito invece che in un thread diramato dal webserver. Credo che tutto ciò sia innocuo, e se l’output dei bot è solo sul tuo canale amministrativo su Discord, ti importa davvero?~~ Questo dovrebbe essere quasi risolto ora, con il bot che si annuncia solo due volte durante una ricostruzione.

## Ringraziamenti

Ci sono diversi sostenitori da ringraziare per questo plugin, che mi ha richiesto molto tempo per arrivare a questo stadio, inclusi @Wedgebert, @FoohonPie. Grazie a Jeff per il suo generoso contributo. Grazie a @angus per tutto l’incoraggiamento e per aver gestito il supporto finanziario.

Il plugin è stato ispirato dal lavoro di @Watercolor_Games in una fase precedente e si basa sul plugin OAuth di Discord creato da @featheredtoast.

Il plugin si basa su [la libreria Ruby `discordrb` semi-ufficiale supportata da Discord](https://github.com/shardlab/discordrb) e sul lavoro fantastico svolto dal team di Discord per rendere il loro sistema accessibile. Grazie a @Falco per avermi aiutato con una dipendenza in modo estremamente reattivo.

Inoltre, naturalmente, questo non sarebbe stato possibile senza l’incredibile ecosistema di plugin di Discourse (woo!)

# Stato di queste istruzioni

Saranno migliorate nel tempo e accolgo con favore i feedback. Ci sono aree che potrebbero risultare poco chiare.

---

<div class="post-metadata">

### Author: ![Owen\_Walters](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/owen_walters/32/119276_2.png) [@Owen\_Walters](https://meta.discourse.org/u/Owen_Walters)
#### Post date: [14 Luglio 2019, 3:42am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/2 "2019-07-14T03:42:31Z")

</div>

Ciao, sono molto interessato a questo.

> [@merefield](#):
>
> ## !discsync \<pulisci: predefinito false, visibilità minima: predefinito 0, includi gruppi automatizzati: predefinito false\>
> 
> Questo comando cercherà di copiare tutti i gruppi nei Ruoli di Discord che corrispondono ai criteri forniti (o ai valori predefiniti se non forniti). Successivamente, cercherà di popolare i ruoli in base all’iscrizione ai gruppi su Discourse. Si tratta di una sincronizzazione unidirezionale. Nessun dato di Discourse viene mai modificato.

Sarebbe possibile fare l’opposto? Mi piacerebbe avere un modo per creare una configurazione di Discourse per il mio server Discord. Non sono sicuro che esista un evento API di Discord per l’assegnazione dei ruoli, ma potresti probabilmente controllare quando qualcuno accede con Discord o tramite CRON.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [14 Luglio 2019, 5:26am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/3 "2019-07-14T05:26:53Z")

</div>

> [@Owen\_Walters](#):
>
> Sarebbe possibile fare il contrario? Mi piacerebbe avere un modo per creare una configurazione Discourse per il mio server Discord. Non sono sicuro che esista un evento API di Discord per l’assegnazione dei ruoli, ma potresti controllare quando qualcuno accede tramite Discord o tramite CRON.

Sì, assolutamente.

Potresti implementarlo come un comando bot per applicazioni occasionali, con una funzione di ripetizione che riesegue il comando dopo un certo periodo (carino, ma non molto trasparente e senza possibilità di gestire singolarmente queste ricorrenze)

OPPURE

Come accennato sopra, potresti programmarlo come un job in Discourse tramite Sidekiq. Potrebbe trattarsi di un plugin separato (in realtà ho iniziato a sviluppare la struttura di questo approccio prima di passare a una soluzione basata solo sul bot, principalmente perché l’approccio ‘bot’ era in qualche modo la ‘cosa’ di Discord, divertente e offriva un approccio e un risultato unici), ma se riesco a far sì che Discourse attivi i comandi del bot, allora questo diventa irrilevante (non ho ancora avuto la possibilità di testarlo). In tal caso, potremmo scrivere il codice una volta sola e farlo funzionare in entrambi i modi (bellissimo!).

Entrambe queste soluzioni si baserebbero comunque sullo stesso accesso OAuth.

Anche se si tratta di un’ottima idea, al momento non può essere una priorità per me perché ho molto altro lavoro per clienti da consegnare. Tuttavia, se desideri supportare tale estensione, possiamo discuterne offline tramite un messaggio privato e pianificarla.

---

<div class="post-metadata">

### Author: ![Owen\_Walters](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/owen_walters/32/119276_2.png) [@Owen\_Walters](https://meta.discourse.org/u/Owen_Walters)
#### Post date: [14 Luglio 2019, 6:49am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/4 "2019-07-14T06:49:07Z")

</div>

Potrebbe essere interessante da sperimentare, ma non sono assolutamente al livello di abilità necessario per offrire volontariamente la mia collaborazione allo sviluppo o alla manutenzione di un addon come questo. Potrei creare una fork disordinata in futuro, ma di certo non voglio che il mio nome compaia su nulla di ufficiale. 🙂

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [14 Luglio 2019, 6:55am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/5 "2019-07-14T06:55:02Z")

</div>

Non aver paura di sporcarti le mani. È l’unico modo per imparare. :).

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [17 Luglio 2019, 3:33pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/6 "2019-07-17T15:33:53Z")

</div>

Correzione di un bug minore distribuita:

> <https://github.com/merefield/discourse-discord-bot/commit/2d28f34e6bdcd09fb55dbf4fcafeb65f112ddbbd>

---

<div class="post-metadata">

### Author: ![neemiasvf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neemiasvf/32/197028_2.png) [@neemiasvf](https://meta.discourse.org/u/neemiasvf)
#### Post date: [17 Luglio 2019, 4:15pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/7 "2019-07-17T16:15:21Z")

</div>

Ho ricevuto questo durante la ricostruzione:

 ![image](https://global.discourse-cdn.com/meta/original/3X/4/8/48a04a904f0911cf63ad15c1ec5b2d88982937b4.png)

Il bot è ancora offline. Ho controllato tre volte tutto ed è configurato correttamente. Non sono sicuro di come procedere ora… Forse devo aprire una porta sulla mia istanza del server?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [17 Luglio 2019, 4:17pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/8 "2019-07-17T16:17:56Z")

</div>

Grazie per averlo testato e così poco dopo l’aggiornamento. Proviamo a riprodurre il problema e vi farò sapere. Non ho apportato modifiche alla configurazione della porta.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [17 Luglio 2019, 4:43pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/10 "2019-07-17T16:43:55Z")

</div>

Nessun problema nel ricostruire qui, Bot si avvia correttamente… hai modificato qualcosa nella configurazione del tuo server nel frattempo?

Il tuo `400 Bad Request` sembra indicare che il tuo server ha inviato una richiesta corrotta o errata al server di Discord e questa è stata la risposta. Ciò suggerisce che la richiesta è stata ricevuta correttamente e non è stata bloccata.

Puoi ottenere questo errore per:

- richieste malformate
- mancanza di autorizzazione
- superamento dei limiti di frequenza

Purtroppo, il messaggio di errore non sembra aiutarci a determinare quale di questi fosse il problema specifico.

Presumibilmente il tuo Discourse è attivo? Controlla che tutte le impostazioni dei plugin siano configurate correttamente.

Solo per escludere un problema temporaneo, esegui `./launcher restart app` quando hai modo… questo porterà il tuo sito offline per pochi secondi solo (scusa per il disturbo!).

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [17 Luglio 2019, 8:03pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/11 "2019-07-17T20:03:58Z")

</div>

Vedo che esegue il bot nel blocco `after_initialize`, quindi impedirà le migrazioni (e i rebuild) se il bot è configurato in modo errato o se Discord è offline.

Forse potresti provare a gestire questa eccezione e limitarti a registrarla nel log?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [17 Luglio 2019, 8:06pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/12 "2019-07-17T20:06:15Z")

</div>

> [@Falco](#):
>
> Vedo che esegue il bot nel blocco `after_initialize`, quindi impedirà le migrazioni (e i rebuild) se il bot è configurato in modo errato o se Discord è offline.

Esegue in un thread separato? Quindi mi aspetto che non sia un problema?

Tuttavia, questo callback sembra essere eseguito più volte durante un rebuild, quindi il problema principale è che un bot configurato in modo errato potrebbe effettivamente superare i limiti di velocità se l’autorizzazione fallisce troppe volte in rapida successione. In tal caso, l’account, nel caso peggiore, potrebbe essere bloccato per un certo periodo.

In ogni caso, farò una rapida patch per gestire ciò con l’implementazione corrente, riducendone l’impatto. Grazie per il suggerimento.

AGGIORNAMENTO: @falco, è fatto, ad esempio:

![image](https://global.discourse-cdn.com/meta/original/3X/8/7/876c0539bb1dac73cb2195ef230d84857c9a59d2.png)

> <https://github.com/merefield/discourse-discord-bot/commit/c7afbdd3a631b3e2cc4f7cd9c499f7d7002d988c>

---

<div class="post-metadata">

### Author: ![ransim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ransim/32/82918_2.png) [@ransim](https://meta.discourse.org/u/ransim)
#### Post date: [31 Luglio 2019, 9:20pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/13 "2019-07-31T21:20:48Z")

</div>

Prima di tutto, voglio ringraziarvi per aver creato questo strumento. Una volta che riuscirò a farlo funzionare, ci sarà di grande aiuto nella gestione del nostro Discourse e Discord per una comunità di volontari.

Sto riscontrando un errore 400 quando provo ad avviare questo bot. Prima dell’aggiunta di questo plugin, abbiamo utilizzato con successo il plugin ufficiale di autenticazione Discord e gli webhook tramite il plugin di integrazione chat. Ho verificato che entrambi continuino a funzionare correttamente.

Ho creato il bot all’interno della stessa app Discord che avevo precedentemente autorizzato nel server Discord; appare nell’elenco dei membri come offline. La vostra documentazione non specificava quale valore di permessi applicare, ma dato che la maggior parte dei bot per Discord che ho incontrato lo richiedevano, ho proceduto impostando un valore di permessi pari a 8 per Amministratore.

Nel server Discord, ho quindi copiato l’ID del ruolo che è stato creato, chiamato come la mia app, e l’ID del canale per il testo di amministrazione. Ho aggiunto il ruolo dell’app a quel canale con tutti i diritti, solo per essere sicuro, poi ho inserito gli ID in Discourse e ho riavviato.

Sfortunatamente, non importa cosa provi, ricevo sempre un errore 400. Ho persino provato a eseguire una ricostruzione per essere sicuro.

 ![image](https://global.discourse-cdn.com/meta/original/3X/c/d/cdc93b27492a12dcb572010e0c2cbec75aecfde9.png)

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [31 Luglio 2019, 9:29pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/14 "2019-07-31T21:29:47Z")

</div>

> [@ransim](#):
>
> Innanzitutto, voglio dire grazie per aver creato questo strumento. Una volta che riuscirò a farlo funzionare, sarà di enorme aiuto per noi nella gestione del nostro Discourse e Discord per una comunità di volontari.

Grazie, sono parole gentili. È stato reso possibile anche grazie alla generosità dei finanziatori.

> [@ransim](#):
>
> La tua documentazione non indicava quale valore di permesso applicare, ma dato che la maggior parte dei bot che ho incontrato per Discord lo richiedeva, ho proceduto impostando un valore di permesso 8 per Amministratore.

Sì, è perfetto. Dovrebbe avere i privilegi di Amministratore.

> [@ransim](#):
>
> Purtroppo, non importa cosa provo, ricevo un errore 400. Ho persino provato a ricreare tutto per essere sicuro.

Questo è il secondo rapporto su questo problema.

Se rimuovi intenzionalmente l’ultimo carattere del token nelle impostazioni (ricordi cos’è?), ottieni invece un errore 401?

Spostiamo la discussione in messaggio privato perché potrebbe diventare confusa 😉 (possiamo sempre pubblicare la soluzione qui).

---

<div class="post-metadata">

### Author: ![ransim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ransim/32/82918_2.png) [@ransim](https://meta.discourse.org/u/ransim)
#### Post date: [1 Agosto 2019, 2:26pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/15 "2019-08-01T14:26:20Z")

</div>

Aggiornamento per chiunque altro stia leggendo: stiamo indagando attivamente sul problema, ma non abbiamo ancora individuato la causa. Se qualcuno sta riscontrando lo stesso problema, vi preghiamo di segnalarlo; sarebbe utile avere altre persone che testano la situazione.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [1 Agosto 2019, 4:48pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/16 "2019-08-01T16:48:17Z")

</div>

Questo è stato ora risolto. È stato un caso strano da individuare.

Grazie a @ransim per aver segnalato il problema e lavorato con me per arrivare al fondo della questione.

Un enorme grazie al gruppo `#ruby_discordrb` su `Discord API` per il loro aiuto paziente e immediato!

> <https://github.com/merefield/discourse-discord-bot/pull/2>
>
> sending a message before the bot runs for the first time will cause a bad reques…t, so move this into the bot.ready event.

@neemiasvf

---

<div class="post-metadata">

### Author: ![p0nda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/p0nda/32/154836_2.png) [@p0nda](https://meta.discourse.org/u/p0nda)
#### Post date: [30 Agosto 2019, 3:04am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/18 "2019-08-30T03:04:26Z")

</div>

@merefield Nessun problema, il tuo plugin è fantastico. Ma ora ho riscontrato alcuni problemi.  
Ad esempio:

```plaintext
Discourse Sync: Avvio. Si prega di attendere, sono limitato dalla velocità per rispettare i servizi di Discord.
Discourse Sync: Controllo se ci sono gruppi idonei per la sincronizzazione...
Discourse Sync: Sono stati trovati 1 gruppo(i) idoneo(i)
Discourse Sync: Preparazione dell'elenco degli utenti che hanno anche un account registrato su Discord...
Discourse Sync: Preparazione dell'elenco dei gruppi a cui appartengono gli utenti con un account registrato su Discord su Discourse...
Discourse Sync: Non sono stati trovati gruppi idonei con utenti Discord
Discourse Sync: Nessun utente è stato trovato nei gruppi idonei per la sincronizzazione utilizzando i criteri forniti o predefiniti!

```

Il mio comando è: !discsync 4

E il comando modificato: !discsync false 5 false

```plaintext
Discourse Sync: Avvio. Si prega di attendere, sono limitato dalla velocità per rispettare i servizi di Discord.
Discourse Sync: Controllo se ci sono gruppi idonei per la sincronizzazione...
Discourse Sync: Sono stati trovati 10 gruppi(i) idonei
Discourse Sync: Preparazione dell'elenco degli utenti che hanno anche un account registrato su Discord...
Discourse Sync: Preparazione dell'elenco dei gruppi a cui appartengono gli utenti con un account registrato su Discord su Discourse...

```

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [1 Settembre 2019, 8:50pm UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/19 "2019-09-01T20:50:52Z")

</div>

Ciao @p0nda, scusa per il ritardo nella risposta.

> [@p0nda](#):
>
> Il mio comando è: !discsync 4

Se includi dei parametri, devi includerne tutti. Potrebbe interpretare le cose in modo strano.

---

<div class="post-metadata">

### Author: ![blueve.in](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blueve.in/32/156131_2.png) [@blueve.in](https://meta.discourse.org/u/blueve.in)
#### Post date: [17 Settembre 2019, 12:38am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/20 "2019-09-17T00:38:34Z")

</div>

Non riesci a far apparire le impostazioni estese del bot? Ho apportato le modifiche all’app.yml e installato i plugin. L’OAuth è configurato correttamente, ma le impostazioni del bot no. Hai qualche idea?

---

<div class="post-metadata">

### Author: ![blueve.in](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blueve.in/32/156131_2.png) [@blueve.in](https://meta.discourse.org/u/blueve.in)
#### Post date: [17 Settembre 2019, 11:14am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/22 "2019-09-17T11:14:47Z")

</div>

Le impostazioni OAuth sono presenti, ma non ci sono le impostazioni del bot

---

<div class="post-metadata">

### Author: ![i3itCoin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/i3itcoin/32/121773_2.png) [@i3itCoin](https://meta.discourse.org/u/i3itCoin)
#### Post date: [17 Settembre 2019, 11:16am UTC](https://meta.discourse.org/t/discord-bot-construction-kit/122530/23 "2019-09-17T11:16:45Z")

</div>

![image](https://global.discourse-cdn.com/meta/original/3X/b/d/bd5c37ba66193897da5181ff13edba7bed8f7c3e.png)  
Queste

[Pagina seguente](https://meta.discourse.org/t/discord-bot-construction-kit/122530.md?page=2)
