Skip to main content

Introduzione

  • Questa guida presuppone che tu abbia un bot approvato su top.gg e che stia utilizzando Node.js o Python per il tuo progetto.
  • Successivamente, dovrai creare un account su Square Cloud, cosa che puoi fare tramite la pagina di registrazione. Puoi usare la tua email per creare un account.
  • Infine, devi avere un piano attivo sul tuo account. Confronta i piani disponibili e scegline uno in base alle tue esigenze.

Configurare l’ambiente

  1. Prima di iniziare, assicurati di avere Node.js e npm installati sul tuo sistema. Se non li hai ancora, puoi scaricarli dal sito ufficiale di Node.js.
  2. Avvia un nuovo progetto Node.js e abilita la sintassi import con i seguenti comandi:
Terminal
Questi comandi creano un file package.json nella directory corrente.
  1. Installa Express:
Terminal

Configurare il progetto

1. Ottieni il secret del tuo webhook:
  • Scegli il sottodominio che la tua applicazione userà su Square Cloud (il campo SUBDOMAIN del tuo file di configurazione), per esempio mysite. L’URL del tuo webhook sarà quindi https://mysite.squareweb.app/topgg.
  • Su Top.gg, apri la dashboard del tuo progetto e vai su Webhooks.
  • Incolla l’URL del webhook e salva. Top.gg genera quindi un webhook secret che inizia con whs_: copialo e tienilo privato. Il tuo codice lo legge dalla variabile d’ambiente TOPGG_WEBHOOK_SECRET.
Top.gg firma ogni richiesta con l’header x-topgg-signature, nel formato t=<timestamp>,v1=<signature>, dove la firma è un HMAC SHA-256 di <timestamp>.<raw body> generato con il tuo secret. Il codice qui sotto la ricalcola e rifiuta qualsiasi richiesta che non corrisponde, così nessun altro può inviare voti falsi al tuo URL. Consulta la documentazione dei webhook di Top.gg per i dettagli.
Questa guida usa i webhook v1 di Top.gg. Il webhook legacy v0, che invia una password nell’header Authorization con un payload diverso, non è trattato qui.
2. Implementa il listener del webhook: Le sezioni seguenti forniscono esempi di codice sia per JavaScript che per Python:
L’esempio verifica la firma con il modulo crypto integrato in Node, quindi non serve nessun pacchetto di Top.gg. La classe Webhook di @top-gg/sdk 4.0.0 non viene usata: nei nostri test, il suo listener rispondeva alle consegne valide con un errore di timeout, il che fa sì che Top.gg le ritenti.
index.js

Creare il file di configurazione squarecloud

Crea un file squarecloud.app nella cartella del tuo progetto. Imposta SUBDOMAIN sul sottodominio scelto al passo 1:
SUBDOMAIN pubblica il listener su https://mysite.squareweb.app, e le applicazioni web richiedono almeno MEMORY=512. Il codice ascolta sulla porta indicata dalla variabile d’ambiente PORT, che Square Cloud imposta a 80, e sull’host 0.0.0.0.

Scopri di più su: come creare il file di configurazione per Square Cloud.

Il file squarecloud.app è un file di configurazione che verrà utilizzato per configurare la tua applicazione; sarà usato per definire il nome, la descrizione, la versione, il file principale, tra le altre cose.

Caricare l’applicazione su Square Cloud

Dopo aver seguito tutti i passaggi, la cartella del tuo progetto dovrebbe contenere il tuo codice, il suo file delle dipendenze (package.json o requirements.txt) e il file di configurazione. Per caricarla dalla dashboard, inseriscili in un file .zip. Se la tua applicazione è un progetto Node.js, dai un’occhiata al nostro articolo su Node.js. Se la tua applicazione è un progetto Python, dai un’occhiata al nostro articolo su Python.

Tramite dashboard

1

Accedi alla pagina di upload

Accedi alla pagina di upload e carica il file zip del tuo progetto.
2

Configura il tuo ambiente

Dopo aver caricato il tuo zip, dovrai configurare il nome, il file principale o il runtime environment e altre impostazioni per il tuo progetto.
Se stai caricando un progetto web, assicurati di selezionare “Web Publication” e di impostare un sottodominio per il tuo progetto.
3

Esegui il deploy del tuo progetto

Infine, clicca sul pulsante “Deploy” per ospitare il tuo progetto su Square Cloud.
Dopo il deploy, puoi monitorare lo stato e i log del tuo progetto dalla dashboard.
Caricamento dell'applicazione su Square Cloud
4

Conferma che la tua app sia online

Il primo deploy richiede di solito meno di un minuto. Nella dashboard, attendi che lo stato della tua applicazione mostri “in esecuzione” e controlla i log per eventuali errori di avvio.
Se hai fatto il deploy di un sito web o di un’API, apri https://<tuo-sottodominio>.squareweb.app nel tuo browser: dovresti vedere la tua applicazione rispondere. Se hai fatto il deploy di un bot, invia un comando per confermare che sia online.
La tua app non si avvia? Consulta la guida alla risoluzione dei problemi per le cause più comuni e le relative soluzioni.

Tramite CLI

Per utilizzare questo metodo, il tuo progetto deve avere un file di configurazione chiamato squarecloud.app nella sua radice. Indica a Square Cloud come eseguire la tua applicazione.

Guida al file di configurazione

Scopri come creare il file di configurazione squarecloud.app che definisce l’ambiente della tua applicazione.
1

Installa la CLI

Installa la CLI di Square Cloud. Se ce l’hai già, esegui lo stesso comando per aggiornarla:
2

Accedi

Esegui il comando qui sotto. Apre il tuo browser: approva l’accesso lì e la CLI è pronta. Non c’è nessuna chiave API da copiare. Per script e CI, consulta Autenticazione della CLI.
3

Carica il tuo progetto

Dalla cartella del tuo progetto, esegui il comando qui sotto. La CLI comprime la cartella corrente, escludendo ciò che elenca squarecloud.ignore, e la carica:
Per caricare uno zip che hai creato tu, passalo con --file:
4

Conferma che la tua app sia online

Il primo deploy richiede di solito meno di un minuto. Controlla lo stato e i log della tua applicazione direttamente dal terminale:
Se hai fatto il deploy di un sito web o di un’API, apri https://<tuo-sottodominio>.squareweb.app nel tuo browser: dovresti vedere la tua applicazione rispondere. Se hai fatto il deploy di un bot, invia un comando per confermare che sia online.
La tua app non si avvia? Consulta la guida alla risoluzione dei problemi per le cause più comuni e le relative soluzioni.

Impostare il webhook secret

Aggiungi il tuo secret whs_ come variabile d’ambiente TOPGG_WEBHOOK_SECRET della tua applicazione, in uno di questi modi:
  • Dashboard: nella pagina di upload, apri Advanced configuration e aggiungi la variabile prima del deploy. Per un’applicazione già pubblicata, aggiungila nella sua pagina Environment Variables.
  • CLI: dalla cartella del tuo progetto, impostala con squarecloud app env set e riavvia l’applicazione:
L’applicazione legge le variabili d’ambiente all’avvio, quindi riavviala dopo ogni modifica. Finché il secret non è impostato, il codice rifiuta ogni richiesta con 401 Unauthorized. Consulta Variabili d’ambiente per gli altri modi di gestirle.

Avviare i test

Se hai fatto tutto correttamente, apri https://mysite.squareweb.app/topgg nel tuo browser (sostituisci mysite con il tuo sottodominio). Se compare “Cannot GET /topgg” (Node.js) o “Method Not Allowed” (Python), è tutto a posto: la route accetta solo le richieste POST che invia Top.gg.
  • Per il codice JavaScript che abbiamo creato con app.post("/topgg", ...), la route che riceverà i voti è “/topgg”. Quindi, se il tuo sito web è mysite.squareweb.app, il Webhook URL è https://mysite.squareweb.app/topgg.
  • Per il codice Python che abbiamo creato con @app.route("/topgg", methods=["POST"]), la route che riceverà i voti è anch’essa “/topgg”. Quindi, il Webhook URL è lo stesso https://mysite.squareweb.app/topgg.
Infine, torna alla pagina Webhooks del tuo progetto su Top.gg e clicca sul pulsante “Send Test”. Dopodiché, controlla i log della tua applicazione. Se tutto è andato bene, il messaggio che hai definito in console.log o print dovrebbe apparire nei log.
Esempio di test di invio del webhook di Top.gg
E con questo, se tutto è stato configurato correttamente, il tuo webhook sarà pronto a inviare notifiche quando il tuo bot riceve un voto su top.gg.

Risoluzione dei problemi

Dominio personalizzato

Per utilizzare un dominio personalizzato (ad esempio, mysite.com) invece dell’URL predefinito mysite.squareweb.app, hai bisogno del piano Standard o superiore. L’URL predefinito deriva dal campo SUBDOMAIN nel file di configurazione. Per collegare il tuo dominio, segui come configurare il tuo dominio.

Requisiti minimi di RAM

Minimo: 512MB di RAM per siti web e API, sufficienti per una build statica sul runtime statico. Per le app che generano le pagine su un server (Next.js, Nuxt, Angular SSR e simili), consigliamo almeno 1GB di RAM. Per applicazioni più grandi, alloca più RAM per evitare che l’applicazione esaurisca la memoria e si arresti in modo anomalo.

Impossibile trovare questo sito.

Verifica che il sottodominio/dominio corrisponda a quanto configurato nel campo SUBDOMAIN o nelle impostazioni del dominio personalizzato. Se hai appena caricato il sito, attendi fino a 60 secondi affinché Square abiliti il primo accesso.

Il sito ha impiegato troppo tempo per rispondere…

Il tuo server deve ascoltare sulla porta 80 e sull’host 0.0.0.0. Square Cloud imposta le variabili d’ambiente PORT (80) e HOST (0.0.0.0) nella tua applicazione: leggile nel codice invece di scrivere altri valori fissi. Un server che ascolta solo su localhost o 127.0.0.1 non riceve mai richieste.

Prossimi passi

Bot Discord

Ospita il bot che riceve i voti.

Variabili d'ambiente

Gestisci il secret del webhook e gli altri segreti.

L'app non si avvia

Risolvi conflitti di porta, moduli mancanti e altri errori di avvio.

Contattaci

Se continui a riscontrare difficoltà tecniche, il nostro team di supporto specializzato è disponibile ad assisterti. Contattaci e saremo felici di aiutarti a risolvere qualsiasi problema: la qualità del supporto è una parte importante del motivo per cui gli sviluppatori valutano Square Cloud 4,9/5 su 402 recensioni su Google e Trustpilot.