IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

vegeu Android Notifications

Introducció

Les notificacions push són notificacions que s'envien des de un servidor amb suport per a la infraestructura de Google GCM a un dispositiu mòbil o també a aplicacions chrome.

Arquitectura

http://www.programming-techniques.com/2014/01/google-cloud-messaging-gcm-in-android.html

Imatge:

sample_init_gcm1.png

Google Cloud Messaging

IMPORTANT: Al comprar Google Firebase ara la API s'anomena Firebase Cloud Messaging/FCM. https://firebase.google.com/docs/cloud-messaging/

aka GCM o Servicio de mensajerí­a en la nube de Google. Prèviament conegut com C2DM (Cloud to Device Messaging)

http://www.sgoliver.net/blog/?p=2682

Recursos:

Credencials

https://developers.google.com/cloud-messaging/gcm#apikey
  • Sender ID: un identificador numèric únic que es crea quan es configura el projecte d'API. Aquest identificar s'utilitza durant el procés de registre per identificar una app de servidor que té permisos per enviar missatges a una aplicació client.
  • Server key: és una clau que es guarda a la aplicació de servidor i que dona a la aplicació permisos per utilitzar els serveis de Google. In HTTP, the server key is included in the header of POST requests that send messages. In XMPP, the server key is used in the SASL PLAIN authentication request as a password to authenticate the connection. No s'ha d'incloure mai aquesta clau al codi del client.
  • Des de setembre de 2016 només es poden crear noves claus de servidor a la Firebase Console utilitzant la pestanya Cloud Messaging000 al panell Settings.
  • Application ID: la aplicació client que es registre per rebre els missatges i que depèn de cada plataforma:
  • Android: use the package name from the app manifest.
  • iOS: use the app's bundle identifier.
  • Chrome: use the Chrome extension name.
  • Registration Token: un id proporcionat pels servidor de GCM/FCM al client i que permet a l'aplicació rebre missatges. Aquests tokens s'han de mantenir secrets.

Requisits

Pas a pas per preparar el sistema (crear API project,activar API, obtenir API key)

Per al servidor (no cal si utilitzeu una eina de tercers com Pushboots o Pushwoosh)

  • Cal activa l'API: Busqueu al buscador la API Google Cloud Messaging, busqueu el boto per habilitar la API i habiliteu-la.
  • Ara cal crear unes credencials: podeu fer click a "Crear api credentials"
  • Obteniu una API Key a 'APIs & auth > Credentials. A Public API access feu clic a Create new key.
  • In the Create a new key dialog, click Server key.
  • Server's IP address: poseu la IP del servidor. Per a test poseu 0.0.0.0/0.
  • Apunteu la API key que us proporcionen

Obtenir una API key

http://developer.android.com/google/gcm/gs.html

Servidors CGM Google

Arquitectura:

http://developer.android.com/google/gcm/gcm.html

NodeJs. node-gcm

Vegeu node-gcm.

Server Google Cloud Messaging

Javascript

Node.js Node-gcm

Vegeu Node-gcm

Cordova

Vegeu article Android Push Notifications amb Cordova

Exemple pas a pas:

Requeriments previs:

Codi al Github:

Les solucions es troben a una carpeta anomenada solutions

PHP

Laravel

Vegeu Laravel i Google Cloud Messaging Notifications

Custom Channel per a les notificacions Laravel

Des de Laravel 5.3 hi ha suport de sèrie per a les notificacions:

https://laravel.com/docs/5.3/notifications#custom-channels

No hi ha cap driver però per a GCM però existeixen implementacions com:

Resources:

Exemple 1

Servidor en PHP simple:

http://www.programming-techniques.com/2014/01/google-cloud-messaging-gcm-in-android.html

La URL de Google per enviar és:

https://android.googleapis.com/gcm/send

Es pot utilitzar curl per a PHP per prepara les peticions.

Exemple 2

    **
     * The following function will send a GCM notification using curl.
     *
     * @param $apiKey [string] The Browser API key string for your GCM account
     * @param $registrationIdsArray [array] An array of registration ids to send this notification to
     * @param $messageData [array] An named array of data to send as the notification payload
     */
    function sendNotification( $apiKey, $registrationIdsArray, $messageData )
    {
    $headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $apiKey);
    $data = array(
    'data' => $messageData,
    'registration_ids' => $registrationIdsArray
    );
     
    $ch = curl_init();
     
    curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
    curl_setopt( $ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send" );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data) );
     
    $response = curl_exec($ch);
    curl_close($ch);
     
    return $response;
    }

To use this function you'll need to assemble the message data and an array of registration ids, as demonstrated below. The message data we construct here is an example of usage with our extension to automate the display of a notification when the GCM arrives on the device.

    // Message to send
    $message = "the test message";
    $tickerText = "ticker text message";
    $contentTitle = "content title";
    $contentText = "content body";
     
    $registrationId = 'DEVICE_ID';
    $apiKey = "YOUR_BROWSER_API_KEY";
     
    $response = sendNotification(
    $apiKey,
    array($registrationId),
    array('message' => $message, 'tickerText' => $tickerText, 'contentTitle' => $contentTitle, "contentText" => $contentText) );
     
    echo $response;

Eines web

Gamethrive

Abans conegut com a GameThrive

https://gamethrive.com/
https://onesignal.com/
OneSignal

Wizard de configuració API GCM:

https://documentation.onesignal.com/docs/android-generating-a-gcm-push-notification-key

Notes:

  • Cal crear-se un compte a la pàgina One Signal. Podeu utilitzar el Social Login i entrar amb Github.
  • Cal afegir una nova App i seguir el wizard
  • El primer que heu d'escollir és la plataforma. Podeu escollir:

Per a GCM cal seguir el wizard i la documentació de:

https://documentation.onesignal.com/docs/android-generating-a-gcm-push-notification-key

Un cop tingueu el compte de GCM configurat i tingueu la key ja podeu passar a configurar l'aplicació Android seguint:

https://documentation.onesignal.com/docs/android-studio-sdk-installation

Al github hi ha una app de demo:

https://github.com/one-signal/OneSignal-Android-SDK/tree/master/Examples/AndroidStudio

Pushwhoosh

Pushbots

Airbop

Airbop

http://www.airbop.com/

Enllaços externs

Vegeu també

Enllaços externs