Attenzione! Parse ha deciso di chiudere i battenti a Gennaio 2017. Ho, per tanto, deciso di non trattare più Parse come sistema di supporto. Da ora in avanti utilizzeremo Firebase. Clicca qui per aggiornarti

Se dovessimo eleggere la tecnologia che ha rivoluzionato il modo di interagire con le applicazioni, questa, non può che essere la tecnologia Push.

Le notifiche Push hanno cambiato letteralmente il modo di interagire con il mondo web ed i servizi che esso ci mette a disposizione. Come?

Prima dell’avvento della tecnologia Push, il tuo client per la messaggistica, il client delle email o la stessa applicazione dovevano richiedere ad un servizio web la presenza di nuovi contenuti. In pratica, l’applicazione, ad intervalli periodici, inviava una richiesta al server: “Ehi bello mio, se ne hai, mandami nuove informazioni!” e, quest’ultimo, rispondeva ritornando indietro le informazioni: “Ehi app, ho delle nuove informazioni. Scaricale pure!”.

Se ci rifletti questa procedura poteva causare dei grossi problemi. Ad esempio, un consumo eccessivo delle risorse percHé l’applicazione doveva ogni volta eseguire delle funzioni con ovvie ripercussioni sulla batteria e, spesso e volentieri, il server non aveva nuove informazioni da restituire all’applicazione (quindi l’applicazione eseguiva connessioni inutili).

Con le notifiche Push remote è il server a mandare le informazioni al client. Quindi, il servizio di email o la tua applicazione, non deve più eseguire delle operazioni di richiesta (pull delle informazioni) che consumano moltissima energia e risorse bensì deve semplicemente essere connesso in rete e aspettare che il server gli invii le informazioni (push delle informazioni).

Adesso proviamo a schematizzare meglio il concetto in modo da dare una risposta formale alla domanda: Cosa sono le notifiche Push?

Le notifiche Push sono un sistema di comunicazione tra client, la tua applicazione, ed un server. Con le notifiche Push è il server ad inviare le informazioni al client solo quando strettamente necessario (nuovi contenuti, informazioni importanti, nuove email). In questo modo, l’applicazione o client, deve semplicemente rimanere attiva o in background e connessa alla rete.

Per le applicazioni iOS le notifiche Push funzionano alla stessa maniera?

Se tra il dire ed il fare c’è di mezzo il mare, tra la tua applicazione ed il server c’è di mezzo Apple. Tra il tuo server e la tua applicazione iOS, Apple, mette un sistema chiamato APNs o Apple Push Notification services. Questo APNs permette ad Apple di poter verificare l’attendibilità e la sicurezza delle notifiche e, in più, smistare la notifica su tutti i dispositivi Apple da te in possesso e con la stessa applicazione installata.

Ora! per farla breve è probabile che tu non abbia un server e che ti servano le notifiche push remote per la tua applicazione. Avevo già spiegato come implementare le notifiche locali e, per tanto, ci occuperemo solo della relativa parte online.

Per chi già segue i miei tutorial sa che amo utilizzare un servizio online chiamato Parse. Parse.com è una piattaforma che mette a disposizione diversi servizi da abilitare per la tua applicazione. É gratuito ed è sviluppato da Facebook. I motivi per cui utilizzarlo li ho elencati nel tutorial introduttivo a Parse ed al salvataggio dei dati sul DB che mette a disposizione.

In questo tutorial, quindi, imparerai ad inviare notifiche Push Online per iOS con Parse e Swift. In più imparerai a:

  1. Inviare notifiche push dalla dashboard di Parse
  2. Inviare notifiche push dal dispositivo a tutti i dispositivi
  3. Differenziare le notifiche push in base a delle categorie
  4. Gestire la ricezione delle notifiche push

Prima di cominciare è importante che tu conosca il linguaggio Swift o come creare un’applicazione per iOS e abbia usato Parse Online. Se non lo hai fatto segui il tutorial introduttivo a Parse dove spiego come instaurare una connessione ed utilizzare il suo DB online.

In più, è giusto che te lo dica prima di farti perdere tempo, devi possedere una licenza da sviluppatore ed un iPhone o iPad reale a portata di mano dato che nel simulatore non è possibile testare le notifiche online.

Pronto ad inviare notifiche Push Online per iOS con Parse e Swift? Cominciamo!

Creare un certificato SLL per le notifiche

Come ti dicevo tra il tuo server, in questo caso Parse e la tua applicazione c’è di mezzo l’APNs. Per poter permettere a parse di inviare una notifica alla tua applicazione è necessario che l’APNs conosca la sorgente della notifica e quindi ti autorizzi ad inviare le notifiche.

Per poter dire all’APNs che vuoi inviare delle notifiche da Parse devi creare un certificato. Come i certificati medici, questi comunicano ad Apple che la sorgente delle informazioni è autorevole e quindi può inviare informazioni all’applicazione.

Il processo è un po’ lungo e noioso, arriverai ad un punto in cui vorrai lanciare nell’iperuranio il tuo Mac. Per contro ti dico che se arriverai fino in fondo rimarrai soddisfatto dell’ottimo lavoro che avrai compiuto. Un lavoro più di tenacia che di tecnica e sai bene che le sfide più diff…noiose sono quelle più ardue da superare.

Let’s the dance begin!

Per prima cosa, dal tuo Mac, apri l’applicazione Keychain Access o Accesso Portachiavi (lo trovi nel launchpad o nella cartella delle applicazioni ed è un’applicazione di default). Poi, dalla barra dei menu, seleziona Accesso Portachiavi\Assistente Certificato\Richiedi un certificato da una Autorità…

Certificato Apple per notifiche

Alla schermata che si aprirà, inserisci la tua email, il tuo nome e spunta la casella “Salvata su disco”. Allo step successivo seleziona dove salvare il file che genererà, la scrivania ad esempio e clicca su salva:

Schermata 2015-12-17 alle 10.38.28

App Identifier e certificato

Nella cartella che hai selezionato dovresti trovare un file con estensione .certSigningRequest. A questo punto, il certificato che ti ha rilasciato la società di certificazione (o CA) deve essere caricato sul tuo account di Apple Developer.

Entra nel tuo Apple Developer Member Center e seleziona Certificates, Identifiers & Profiles. Spostati nel menu App ID e seleziona il bottone e a forma di più (+) per aggiungere una nuova applicazione:

Certificati e Apple ID

  1. In App ID descrition puoi scrivere un testo qualsiasi come: “Parse e notifiche Push”. Questo testo non ha relazioni con l’applicazione.
  2. Metti la spunta a Explicit App Id e, in Bundle ID, devi inserire il Bundle Identifier della tua applicazione iOS. Questo valore deve essere assolutamente uguale a quello presente nell’applicazione:

Bundle identifier e App push

Scorri la pagina e, in App Services, seleziona Push Notification. Infine premi su Continue:

App service e Push Notification

Nella pagina del riepilogo, ti verrà comunicato un problema alle Push Notification. Vedrai un pallino arancione con scritto “Configurable”, questo accade perché ancora non hai inserito un certificato valido che permette all’APNs di accettare in ingresso delle notifiche push per la tua applicazione. Clicca su Submit.

Adesso devi inserire il certificato che hai creato poc’anzi. Clicca su App IDs e seleziona la nuova applicazione che hai creato:

iOS_App_IDs_-_Apple_Developer

Un volta seleziona ti apparirà un menu con i servizi abiliti dalla tua applicazione. In fondo, trovi il bottone Edit. Selezionandolo verrai portato in una nuova pagina in cui dovrai inserire il tuo certificato.

Scorri questa pagina fino ad arrivare al servizio di Push Notification. Qui ti chiederà di aggiungere un certificato per la tua applicazione:

Settings_-_iOS_App_IDs_-_Apple_Developer

Nella pagina che si aprirà clicca su Continue e poi su Generate. Arriverai in una pagina in cui ti chiederà di caricare il tuo certificato. Clicca su Choose File e seleziona il certificato che hai creato ad inizio tutorial:

Window_e_Add_-_iOS_Certificates_-_Apple_Developer

Sotto trovi il bottone Generate, cliccalo e alla pagina successiva premi su Download:

Schermata 2015-12-17 alle 13.08.27

Sembra la burocrazia Italiana però, a differenza, questa ha un suo perché. Comunque non ti preoccupare perché ormai hai quasi finito.

Vai nella cartella in cui hai scaricato l’ultimo certificato. Selezionalo e fai doppio click su di esso. Dovrebbe aprirsi il Keychan. Se l’Accesso Portachiavi dovrebbe mandarti un messaggio d’errore dicendoti che non hai i permessi, vicino ai bottoni per chiudere il Keychan, c’è un bottone a forma di lucchetto. Se lo selezioni ed inserisci la password del tuo mac, sbloccherai il caricamento.

Devi caricare il tuo certificato nella sezione Login (nel pannello a sinistra dell’Accesso Portachiavi) e selezionare anche la categoria I mie certificati. Forse ti richiederà nuovamente la password. Inseriscila e trascina il tuo certificato all’interno.

Caricato il certificato, selezionalo con il tasto destro ed esportalo in formato .p12. Ti verrà richiesto di inserire una password per il certificato. Non devi assolutamente inserirla. Lascia vuoto e premi avanti. Ti chiederà la password di sistema ed infine il tuo nuovo certificato verrà salvato nella cartella da te selezionata (da me è Documenti):

Fai molta attenzione perché in questo momento hai creato un certificato che funzionerà esclusivamente con il tuo dispositivo e non per i dispositivi che scaricheranno la tua applicazione.

Per abilitare le notifiche push distribuite devi ripetere tutti questi passaggi e, nella sezione dei service della tua app, dove c’è Push Notification e dove hai creato il certificato, devi crearlo anche per la Production SSL Certificate. Lascio a te il compito di farlo.

Creare il Provisioning Profile

Il Provisioning Profile autentica il tuo dispositivo ad utilizzare l’applicazione. Anche se, da Xcode 7, puoi far partire un’applicazione su un dispositivo non registrato al Developer Program è necessario creare questo certificato per poter far conoscere, all’APNs, chi sta testando il servizio di notifiche push.

Il Provisioning Profile che creerai servirà solo ed esclusivamente per il test nei tuoi dispositivi. L’abilitazione della distribuzione (chiamata Ad Hoc e App Store) la vedrai più avanti.

Se sei uscito, entra nuovamente nel tuo Apple Developer Member Center e seleziona Certificates, Identifiers & Profiles. In fondo alla pagina, nel pannello Provisioning Profile, seleziona All e clicca sul tasto a forma di più (+) in alto a destra:

Window_e_iOS_Provisioning_Profiles_-_Apple_Developer

Ti chiederà di scegliere per quale tipologia di servizio vuoi creare un Provisioning Profile. Come puoi vedere sono presenti due menu. Il primo è Development, che ti farà creare un certificato per i tuoi dispositivi (iOS o tvOS), mentre il secondo servirà per la Distribution della tua applicazione. Quando dovrai pubblicare l’applicazione su App Store, ad esempio, dovrai ricreare un Provisioning Profile per App Store (lo trovi nella parte della distribution).

Dato che tu ti stai avvicinando per la prima volta alle notifiche Push Online per iOS con Parse e Swift, trattiamo la parte di Development. Quindi, seleziona iOS App Development:

Schermata 2015-12-18 alle 00.56.45

Ti schematizzo tutti i passaggi che dovrai fare (sotto trovi l’illustrazione animata):

  1. Nella schermata successiva ti chiederà di selezionare l’App ID a cui associare questo certificato. Devi scegliere l’App ID dell’applicazione che hai creato nel paragrafo precedente (nel mio caso l’avevo chiamata Parse e Notifiche Push). Vai avanti.
  2. Ti verrà chiesto di selezionare l’account da Developer a cui associare tale certificato (devi essere registrato al Dev Program e quindi aver pagato i 99 euro).
  3. Dovrai scegliere i dispositivi che saranno compatibili con tale certificato (se non trovi il tuo, ti basta collegarlo al Mac e far partire un progetto di Xcode sul dispositivo).
  4. Poi devi dare un nome al Profile. Io ho messo “Push e Parse Development Profile”.
  5. Infine dovrai scaricare il tuo certificato. 

Provisioning Profile

Una volta scaricato il profilo, ti basta cliccarci sopra con un doppio click per installarlo (non ti si aprirà nessuna schermata, quindi non entrare nel panico).

Configurare Parse all’invio delle notifiche online

Con i certificati hai finalmente finito.

Adesso è arrivato il momento di cominciare a settare Parse per l’invio delle notifiche online. Il primo step è quello di andare nel tuo pannello Parse. Da qui, spostati nelle impostazioni delle notifiche Push. Da qui potrai scegliere per quale piattaforma abilitare le notifiche e che tipologia di sistema di invio utilizzare.

pannello parse per notifiche push online

Nella parte superiore trovi due opzioni che puoi abilitare:

  • Enable Client Push: Permette di inviare notifiche push online direttamente dal tuo dispositivo. Cioè invii la richiesta di invio di una notifica tramite iphone a parse e lui la smista a tutti gli altri. Utile in fase di test e quando non si ha a disposizione un server.
  • Enable Rest Push: Sblocca l’invio delle notifiche alla ricezione di una richiesta da parte di un tuo servizio REST di un tuo server.

Noi utilizzeremo il primo sistema, cioè l’invio delle notifiche a tutti gli utenti da Client e dal pannello di Parse, quindi spunta la prima opzione.

Infine, nella sezione Apple Push Certificates devi caricare il certificato con estensione .p12 cioè il primo certificato che hai creato. 

Questo è tutto ciò che serve a Parse per inviare delle notifiche push. Con il certificato che hai caricato, quando Parse invierà una notifica all’APN,  manderà anche la firma che hai creato permettendoti di superare il controllo di sicurezza e di raggiungere i vari dispositivi. Adesso manca solamente il setting dell’applicazione per poter finalmente testare l’invio di notifiche push Online per iOS con Parse e Swift.

Preparare l’app a ricevere le notifiche Push da Parse

Siamo quasi arrivati a termine dell’avventura delle notifiche push.

Dovresti aver già creato un progetto iOS perché hai dovuto inserire il suo Bundle Indetifier per la creazione dei Certificati. Se non lo hai fatto, devi ricominciare il tutorial tutto da capo oppure creare un’applicazione con lo stesso Bundle Indetifier che hai utilizzato nei primi paragrafi.

Il primo step è quello di associare l’account da sviluppatore al progetto. Seleziona l’icona del progetto ed associa il tuo account nel campo Team:

Provisioning profile associazione Xcode progetto

Ora tocca al Provisioning Profile. Spostati nel campo Build Phases e scendi fino alle impostazioni di Code Signing. Qui, apri il menu a tendina Code Signing Identity e, in ogni campo, seleziona il tuo account da sviluppatore. Subito sotto, nel menu a tendina Provisioning Profile, seleziona il provisioning profile che hai creato nel paragrafo precedente (ha lo stesso nome ed è quel certificato che hai attivato con doppio click) per tutte le opzioni:

Provisioning Profile per applicazione iOS e notifiche

Nel caso in cui dovrai rilasciare la tua applicazione al pubblico, ti ricordo, che dovrai creare un ulteriore certificato impostato come Release e, di conseguenza, dovrai inserire quest’ultimo nel campo Release del Provisioning Profile.

Gli stessi identici passaggi, che hai fatto per il Target, devono essere eseguiti per l’intero progetto. Quindi cambia pannello dal target all’intero progetto e assegna gli stessi valori:

provisioning profile notifiche push parse

Adesso spostati nell’AppDelegate.swift. Importa il framework Parse e, nel metodo didFinishLaunchingWithOptions attiva la connessione alla tua Parse Application. I passaggi sono gli stessi che ho spiegato nel primo tutorial a Parse.

Successivamente bisogna sbloccare l’utilizzo delle notifiche per l’applicazione, quindi inserisci anche la chiamata al metodo registerUserNotificationSettings in modo da far comparire il banner per l’accettazione delle notifiche all’avvio dell’applicazione.

Infine il tuo didFinishLaunchingWithOptions dovrebbe essere simile a questo:

import UIKit
import Parse

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        Parse.setApplicationId("laTuaApplicationID", clientKey: "laTuaClientKey")
        
        let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
        UIApplication.sharedApplication().registerUserNotificationSettings(settings)
        
        return true
    }

Nel caso in cui dovessi avere dei problemi ti ricordo che puoi trovare

Attivare la ricezione di notifiche remote

Per poter attivare le notifiche push remote è necessario che l’applicazioni mandi una richiesta all’APNs. La richiesta deve essere mandata nel metodo del AppDelegate didRegisterUserNotificationSettings che sarà attivato non appena l’utente accetterà l’utilizzo delle notifiche (il codice che hai inserito poc’anzi). Quindi dentro la classe AppDelegate inserisci il metodo didRegisterUserNotificationSettings:

    func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
        application.registerForRemoteNotifications()
    }

Dentro il metodo chiamiamo la funzione registerForRemoteNotifications che invia all’APNs la richiesta per poter ricevere notifiche push. Se l’APNs conferma l’applicazione, cioè verifica che i certificati siano in regola, allora viene invocato il metodo del AppDelegate didRegisterForRemoteNotificationsWithDeviceToken.

Il DeviceToken è il codice che identifica il tuo dispositivo nei confronti dell’APNs. Questo codice deve anche essere comunicato a Parse in modo che lui sa a quale dispositivo dover inviare le notifiche. In pratica l’APNs conosce il tuo device token, tu lo comunichi anche a Parse e quest’ultimo poi dirà all’APNs: “senti, io devo inviare una notifica a questo device token, posso farlo?” e l’APNs, dato che ha già salvato il device, risponderà di si.

    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
        let installation = PFInstallation.currentInstallation()
        installation.setDeviceTokenFromData(deviceToken)
        installation.saveInBackground()
        print("device token installato correttamente")
    }

La registrazione del device token a Parse avviene tramite l’invocazione del metodo setDeviceTokenFromData per l’oggetto PFInstallation. Infine viene salvato il tutto con il saveInBackground.

Registrazione fallita all’APNs

Se il metodo registerForRemoteNotification dovesse fallire, non verrà mai invocato il didRegisterForRemoteNotificationWithDeviceToken bensì, verrà chiamato il didFailToRegisterForRemoteNotificationWithError dove potrai gestire l’errore inviando un messaggio all’utente:

    func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
        print("Registrazione all'APNs fallita con errore: \(error)")
    }

In questo caso ti consiglio di rivedere un po’ tutti i passaggi del tutorial perché sicuramente avrai saltato qualche passaggio.

didReceiveRemoteNotification, la ricezione delle notifiche

Quando l’applicazione ricevere è attiva e riceve una notifica, viene invocato il metodo didReceiveRemoteNotification dell’AppDelegate. La proprietà userInfo contiene le informazioni riguardanti la notifica come, ad esempio, il contenuto del messaggio ricevuto (in formato JSON).

    func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
        print("Notifica Remota ricevuta")
        PFPush.handlePush(userInfo)
        print(userInfo)
    }

Il metodo si attiva esclusivamente quando l’applicazione è attiva e non si trova in Background.

Se, invece, la tua applicazione si trova nel background e vuoi gestire una notifica remota, devi utilizzare il metodo didReceiveRemoteNotification completionHandler:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

}

Al solito, la proprietà userInfo contiene le informazioni sulla notifica (dato che viene inviato un JSON le chiavi del dizionario puoi estrapolarle convertendo NSObject in String) mentre, grazie al completionHandler, hai la possibilità di eseguire delle operazioni durante il passaggio dalla modalità di background a quella di foreground (come ad esempio il download di immagini passate come id dalla notifica di parse).

Per maggiori informazioni ti consiglio di guardare la documentazione ufficiale di Parse.com. Io tratterò questi argomenti in altri tutorial dato che già in questo c’è troppa carne sul fuoco.

Inviare una notifica Push da Parse

Adesso hai tutto pronto per l’invio e la ricezione di una notifica Push da Parse.

Il primo passo che devi fare è quello di collegare il tuo dispositivo iOS ad Xcode. Ti ricordo che non puoi testare la ricezione di notifiche push dal simulatore, bensì ti serve obbligatoriamente un dispositivo reale. Una volta collegato, seleziona il target da Xcode e avvia l’applicazione.

Poi torna sulla dashboard di Parse.com, seleziona la tua app e spostati nella selezione Push. Nella pagina principale vedrai la lista delle notifiche inviate (se hai una nuova app dovrebbe essere vuota). In alto a destra c’è il bottone Send a Push che ti permetterà di inviare una notifica. Cliccalo:

Parse.com dashboard e push notification

Ci sono diversi campi interessanti. Il primo che ti si presenterà sarà quello relativo alla Audience. Parse ti da la possibilità di dividere il pubblico della tua applicazione in categorie, da qui puoi selezionare a quale categoria inviare le notifiche (per esempio ai solo membri VIP della tua app).

Di default dovrebbe esserci l’Audience Everyone. Dovrebbe anche esserci un utente (la Size dovrebbe essere 1) cioè il tuo dispositivo dato che prima dovresti aver avviato l’applicazione sul tuo dispositivo.

Più in basso ci sono diverse opzioni tra cui la possibilità di creare test A/B (utili per scegliere quale tipo di notifica ha più efficacia) ed altre impostazioni per la schedulazione della notifica (invia immediatamente o invia ad una data precisa).

Infine c’è il campo per compilare i dati della tua notifica. Per inviare la notifica devi obbligatoriamente inserire un testo:

invio notifiche push con parse.com

Infine, potrai premere il tuo bel tasto Send push che invierà la notifica a tutti i dispositivi della tua Audience. Sul tuo iPhone di conseguenza dovrebbe comparire l’alert ed in console dovresti vedere i vari print del messaggio ricevuto.

Schermata 2016-01-05 alle 11.51.18Notifiche Push dal dispositivo

Se invece vuoi testare l’invio delle notifiche push direttamente dal dispositivo, puoi utilizzare il seguente codice:

let push = PFPush()
push.setMessage("Questa è una notifica di prova dal dispositivo!")
push.sendPushInBackground()

Nel mio progetto, ad esempio, ho associato questo codice alla IBAction di un bottone:

Schermata 2016-01-05 alle 11.56.57

Se adesso vai nella dashboard di Parse vedrai la comparsa di una nuova riga nella lista delle notifiche inviate.

Inviare le notifiche ad un canale

Per registrare un utente ad un canale ben preciso, cioè ad un gruppo di persone che riceveranno solo determinate notifiche, puoi utilizzare il seguente codice:

let currentInstallation = PFInstallation.currentInstallation()
currentInstallation.addUniqueObject("SwiftDev", forKey: "channels")
currentInstallation.saveInBackground()

Questo farà si che la currentInstallation, cioè il device che stai utilizzando, venga iscritto al canale SwiftDev. Se adesso torni su Parse e vai su Core\Browser\Installation vedrai che nel campo “channels” sarà comparsa la stringa SwiftDev:

Channel per notifiche push mirate

Questo ti permette di mirare le tue notifiche solo a determinati iscritti alle varie sezioni della tua applicazioni. Non è cosa da poco, in questo modo puoi sfoltire di gran lunga il numero di utenti che non sono interessati a determinate notizie o non sono iscritte a versioni vip della tua applicazione.

Infine, puoi inviare una notifica ad un channels aggiungendo una semplice riga di codice:

        let push = PFPush()
        push.setChannel("SwiftDev")
        push.setMessage("Questa è una notifica solo per gli iscritti a SwiftDev!")
        push.sendPushInBackground()

Puoi anche inviare notifiche a più di un canale, semplicemente aggiungendo un array di String al metodo setChannels (invece che setChannel).

Considerazioni

Con questo concludo il tutorial riguardante l’invio delle Notifiche Push Online per iOS con Parse e Swift. Con Parse.com le possibilità di personalizzare le notifiche sono quasi infinite, per tale ragione ho preferito trattare solo i primi argomenti principali in questo tutorial. Ne arriveranno altri più avanti in cui ti farò vedere come gestire in maniera avanzata la ricezione delle notifiche.

Per ora, scervellati a gestire i certificati ed a configurare correttamente l’applicazione!

In più, ti consiglio di dare una bella lettura alla documentazione ufficiale dato che è semplicissima da capire.

Detto ciò, gli altri tutorial che ti suggerisco sono i seguenti:

Infine se vuoi scaricare il mio progetto per vedere come ho scritto il codice, sblocca il seguente form:

[sociallocker][wpdm_package id=’40898′][/sociallocker]

Buona Programmazione!