MICHELEPISANI.IT
 

Tutte le statistiche del gioco in un click

Connettiti alle API di Clash Royale con JavaScript

Novembre 02
07:172021

Clash Royale è un gioco di strategia freemium di Supercell. In questo video, ti mostrerò come connettersi facilmente alle API del gioco per poter ottenere tutte le informazioni che desideri su clan, giocatori e quant'altro.

L'API di Clash Royale fornisce un accesso praticamente in tempo reale ai dati del gioco. Per accedere all'API, è necessario un account sviluppatore e una chiave per abilitare la propria applicazione.

Per creare un account basta accedere alla sezione del sito dedicato agli sviluppatori: https://developer.clashroyale.com/ e seguire il processo di registrazione. Una volta completato sarà opportuno loggarsi con l’indirizzo email e la password scelta.

Le chiavi aiutano a controllare l’accesso e il traffico all’API. Quando si crea una chiave è necessario specificare gli indirizzi IP a cui è consentito accedere agli endpoint API. Per creare una chiave è necessario recarsi nelle impostazioni del proprio account e cliccare su "Crea nuova chiave". A questo punto dare un nome al progetto (ad esempio: Progetto Apps Script), inserire una descrizione (Clash Royale API con Google Apps Script) ed inserire un indirizzo IP valido (potete inserire in questo caso il vostro, ottenibile scrivendo "whats my ip" nella barra di ricerca di Google), per poi cliccare su Crea chiave.

A questo punto entrare nella chiave appena creata per recuperare il token che andremo ad utilizzare all’interno della nostra applicazione. Nel caso specifico, nel mio progetto, ho creato una variabile dedicata dove andarlo ad inserire, la quale è inclusa nell'header delle chiamate alle API che vedremo tra poco.

Passiamo ora alla parte della documentazione contenente gli endpoint da interrogare per recuperare le informazioni che ci interessano, tra le quali: clan, giocatori, carte, tornei, località e tornei globali.

Facendo clic sul collegamento corrispondente per una categoria si espanderà un elenco di endpoint specifici.
Al clic su uno di essi si aprirà la relativa pagina di documentazione, contenente il metodo HTTP e l'URL dell'endpoint, una breve descrizione del suo scopo, un elenco dei parametri accettati e dei messaggi di risposta, nonché una richiesta di esempio e di risposta ottenuta.

Tutte le chiamate API a Clash Royale devono essere effettuate a questo URL di base:

https://api.clashroyale.com/v1/

Il resto del percorso si compone con il path dello specifico endpoint (ad esempio clans o players) e dai parametri in querystring.

Questi sono due esempi che ho creato per interrogare le API di Clash Royale da Google Apps Script utilizzando la classe UrlFetchApp che non fa altro che puntare ad un indirizzo esterno e ottenerne una risposta.

Se è il primo avvio di una funzione del vostro progetto sarà richiesto autorizzare lo script ad accedere a un servizio esterno, basterà seguire la semplice procedura guidata.

La prima funzione cerca i clan in base al parametro passato, nel caso specifico il nome, ad esempio "Baraldi". Scrivendo il termine nel campo di testo e cliccando su "Provalo", viene suggerito l'intero endpoint da utilizzare, e che è quello che diamo in pasto al metodo fetch. Nei risultati troviamo tutti i clan che contengono la parola Baraldi e dai quali è possibile ottenere informazioni associate come il paese, il tag o il punteggio.

Con lo stesso criterio, la seconda funzione identifica le informazioni di un singolo giocatore. Il giocatore è interrogabile tramite il suo specifico tag che si trova sotto il suo nome nel relativo profilo. I tag dei giocatori iniziano con il carattere cancelletto '#' il quale deve essere codificato correttamente nell'URL affinché l’interrogazione vada a buon fine, per cui il simbolo # dovrà essere definito com %23. Pertanto nel caso del nostro esempio, #28L8Y8UC dovrà diventare %2328L8Y8UC.
Eseguendo la funzione così definita (vedere il video) ecco che otteniamo tutte le informazioni associate al giocatore di interesse: il suo nome, il numero di battaglie, il livello di gioco nonché il progresso delle sue carte, ad esempio possiamo riscontrare che possiede 329 carte del Barile goblin.

In questo tutorial abbiamo visto l'output direttamente nel log dell’editor di script tuttavia è possibile gestire questi dati come meglio crediamo. Potremo ad esempio farli comparire direttamente all'interno di un Foglio di Google oppure creare una pagina HTML dove mostrare un cruscotto con grafici, andamenti e altri widget utili.

Fammi sapere se questo video tutorial ti è piaciuto, ti invito anche a lasciami un commento per qualsiasi dubbio, curiosità o suggerimento e a iscriverti al mio canale, se ancora non l'hai fatto, per rimanere aggiornato sull'uscita dei miei nuovi video.

A presto, ciao! ;)

 

Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Christian Beni

Ciao Michele, volevo porti una domanda. Ho cambiato nome ad una pagina che per molto tempo era …

Max

ciao michele, sono in difficoltà: vorrei che scegliendo una città da un form si generasse una url …

Francesco Raimondi

non riesco a capire perché mi da errore, ho fatto meno fatica a creare un paio di applicazioni con …

Michele Pisani

Ciao Emma, proverei a passare ad un account business, lì sicuramente l'assistenza per risolvere …