- Learn
- Guida ai Servizi Google su Android
- Inviare notifiche push da un’applicazione esterna
Inviare notifiche push da un’applicazione esterna
Abbiamo parlato della possibilità, per un’applicazione esterna, di interagire con un’app Android tramite le notifiche push. Di seguito vedremo un esempio di codice PHP che richiederà a Google Cloud Messaging (GCM) di inviare notifiche push alla nostra app.
Quello che vedremo di seguito è un esempio specifico, che in realtà può essere realizzato in qualunque linguaggio di programmazione: si tratta, infatti, di una semplice richiesta HTTP caratterizzata dalle seguenti proprietà:
-
deve usare il metodo
POST
; -
deve essere indirizzata all’URL
https://android.googleapis.com/gcm/send
; -
deve contenere due header: una di tipo
Authorization
e di valorekey=
concatenato con la SERVER KEY prodotta nella Google Developers Console (come spiegato nella lezione precedente); l’altra header specificherà invece il tipo di contenuto (Content-type: application/json
); -
nel corpo della richiesta si deve collocare un oggetto JSON che possieda due proprietà:
registration_ids
corrispondente ad una lista di REGISTRATION ID dei dispositivi da raggiungere con la notifica, edata
contenente le informazioni da trasmettere all’app.
Lo script di esempio viene eseguito da una richiesta POST (proveniente dall’app Android) che offrirà nel parametro regid
il REGISTRATION ID che l’app ha
ricevuto da GCM. In una realizzazione più completa, la stringa ricevuta dovrebbe essere salvata in un database per essere disponibile in futuro; per semplicità, nel codice che segue non faremo altro che inviare una notifica tramite GCM che, raggiungendo il dispositivo mobile, dimostrerà la correttezza delle impostazioni eseguite.
Nell’immagine seguente, la richiesta inviata dal codice sottostante corrisponde alla freccia indicata con il numero (4).
<?php
if (isset($_POST['regid']))
{
$regid=$_POST['regid'];
$url = 'https://android.googleapis.com/gcm/send';
define("GOOGLE_API_KEY","nA5YMr_hvNLAIzBSyB3WyWb9sOCn7LjyJTiBCDQ");
$registration_ids = array($regid);
$message=array("message" => “”);
$fields = array('registration_ids' => $registration_ids,'data' =>$message);
$headers = array('Authorization: key=' . GOOGLE_API_KEY,'Content-Type: application/json');
$ccurl = curl_init();
curl_setopt($ccurl, CURLOPT_URL, $url);
curl_setopt($ccurl, CURLOPT_POST, true);
curl_setopt($ccurl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ccurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ccurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ccurl, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ccurl);
curl_close($ccurl);
}
?>
Se vuoi aggiornamenti su Android, mobile inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali: