Stai creando un sito web con Laravel? Hai intenzione di implementare le API di Google Calendar perchè ti servono da qualche parte? Stai facendo fatica a capire come fare?

Tranquillo, anch’io ci ho messo un momento a trovare qualcosa di utile. Ho fatto anch’io fatica a ricavare le informazioni utili a quello che mi servivano e, dato che so quanto ho sclerato per trovare queste informazioni, ho fatto che creare questa piccola guida, in modo da darti (o ridarmi) una mano.

Cominciamo!

Impostare il servizio Google

Accedere con l’account Google che ci serve su https://console.cloud.google.com/ e cliccare sul bottone “Seleziona un progetto” (presente in alto a sinistra vicino al logo Google Cloud).

Se non ci sono progetti e dobbiamo crearne uno, facciamo clic in alto su Nuovo progetto->Dai un nome al tuo progetto (località possiamo anche lasciarla vuota)->clicca sul pulsante Crea.

Subito dopo la creazione, se non siamo stati indirizzati sulla pagina di benvenuto, accedere al progetto dal menù a tendina.

Fare clic sul pulsante “IAM & Admin”, selezionandolo dal menu di navigazione a sinistra. Appena entrati, cliccare dal menu di navigazione a sinistra la sezione Service account, che al momento troviamo vuota. Cliccare il pulsante Crea service account e diamo un nome e una descrizione al nostro service account.

PRENDIAMO NOTA DELL’INDIRIZZO EMAIL (lorem-ipsum@ababababa-1112222.iam.gserviceaccount.com) che ci servirà più avanti. Clicca su “Crea e continua” e salta pure i prossimi due passaggi, sono opzionali.

Appena tornati alla pagina di prima, dove vediamo il nuovo service account creato, fare clic su Azioni e accedere alla sezione Gestisci chiavi, trovandosi poi su una pagina con un elenco vuoto di chiavi. Fare clic su Aggiungi Chiave->Crea nuova chiave.

Assicurarsi che “JSON” sia selezionato e scegliere “Crea”. Il tuo browser scaricherà automaticamente un file contenente la tua chiave privata. QUESTA È LA TUA CHIAVE PRIVATA, DEVE ESSERE ACCESSIBILE MA NON DEVE ESSERE PUBBLICO A CHIUNQUE.

Dopo aver scaricato il file, ritornare alla pagina principale (https://console.cloud.google.com/) e, dal menù a sinistra, fare clic su API e servizi e, una volta dentro, cliccare su Abilita API e servizi. Si aprirà una pagina, che contiene le librerie API di Google, dove bisogna cercare Google Calendar API, fai clic e, una volta dentro, clicca su abilita, per venire poi indirizzato alla voce per l’API del calendario dalla pagina “API e servizi abilitata”, mostrando le statistiche per tale API.

Impostare il sito per utilizzare le API

Scaricare tra i pacchetti del sito, tramite composer, i pacchetti PHP di Google API:

composer require google/apiclient:^2.15.0

Dopo aver fatto, cominciamo a scaricare il pacchetto di Spatie:

composer require spatie/laravel-google-calendar
php artisan vendor:publish --provider="Spatie\GoogleCalendar\GoogleCalendarServiceProvider"

Questo creerà un file chiamato google-calendar.php

Prendiamo il file JSON che abbiamo scaricato prima e carichiamolo su app/google-calendar/ e inseriamo il nuovo percorso in credentials_json.

Consentire all’account di servizio di accedere al calendario

Prima di poter accedere al calendario dal sito, devi condividerlo con il tuo account di servizio.

Andiamo su Calendar e creiamo un nuovo calendario (consiglio di crearne uno nuovo perché con quello di default ho avuto dei problemi).

Entriamo nelle impostazioni del nuovo calendario e andiamo in fondo, alla sezione Condivisione con, e aggiungiamo una nuova persona, ovvero la mail che è stata creata durante la creazione del Service account, dandogli tutti i permessi necessari.

Scorriamo verso il basso, nella sezione Integra calendario, e copiamo l’ID del calendario (una cosa simile a 64254d8f5gf8f5gf6d4f8s@group.calendar.google.com).

E questo è tutto. Ora, a meno di problemi specifichi legati ai pacchetti, dovrebbe essere tutto a posto.

Per il rispetto delle fonti, lascio qua sotto i link che mi sono serviti di più.