2017 © Pedro Peláez
 

library android-gcm

Send push notification with GCM

image

jgab-net/android-gcm

Send push notification with GCM

  • Thursday, April 10, 2014
  • by jgab.net
  • Repository
  • 1 Watchers
  • 2 Stars
  • 49 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Laravel - Android GCM

Paquete laravel para enviar notificaciones usando Google Could Message (GCM)

http://developer.android.com/google/gcm/gcm.html, (*1)

Instalando


composer require jgab-net/android-gcm dev-master

Publicando configuración


php artisan config:publish jgab-net/android-gcm

El archivo de configuración se publica en app/config/packages/jgab-net/android-gcm/config.php, (*2)

Coloquen el api_key generado en https://cloud.google.com/console para el servidor, (*3)


return array( 'api_key' => 'aquí el api_key' );

Configurando base de datos

Es necesario correr la migración del paquete para que se genere la tabla donde se guardaran los tokens (registrations_id) que representan los dispositivos android que recibirán notificaciones, (*4)


php artisan migrate --package=jgab-net/android-gcm

Es importante que esta migración se ejecute después de que corras las migraciones de tu proyecto o exista la tabla users en tu sistema, porque se creara una clave foránea con users.id, si no existe la tabla la migración mostrará un error, sin embargo puedes continuar ignorando el error, simplemente perderás la clave foranea, (*5)

Programando

Para almacenar el token(registration_id) solo necesitas agregar la siguiente línea, en el lugar que lo desees (el registration_id se supone estar llegando desde el dispositivo android, y el user_id pertenece al usuario que accedió a la aplicación), (*6)


AndroidGcm::addRegistrationId($registration_id, $user_id);

Si estas usando algún paquete aparte para el manejo de accesos de tu usuario puedes trabajar con un filtro after, ej:, (*7)

  • filters.php

Route::filter('android.gcm',function($route, $request, $response){ /*verificamos que venga de una respuesta json (Response::json()) y que exista un registration_id en el input */ if($response instanceof \Illuminate\Http\JsonResponse && Input::has('registration_id')){ // Obtenemos el contenido de la respuesta $content = json_decode($response->getContent()); AndroidGcm::addRegistrationId(Input::get('registration_id'), $content->user->id); } });

La explicación ya se encuentra en el código de ejemplo, (*8)

  • routes.php

Route::post('auth', array('after' => 'android.gcm', 'uses' => 'Vendor\Paquete\Controller@method'));

Notificando

Para notificar simplemente ejecutamos el método send, el primer valor es un array con los tokens(registration_ids) de los dispositivos a notificar, y el segundo es un callback que recibe los tokens(registration_ids) que realmente fueron notificados, (*9)

La librería internamente reemplazará los tokens(registration_ids) desactualizados, para que en la próxima ejecución del envio se transmitan las notificaciones a los dispositivos faltantes, (*10)


AndroidGcm::send($registrationIds,function($successRegistrationIds){ /* Aquí puedes actualizar la bandera que indique que ya no debes enviar la notificación a los dispositivos Puedes usar $successRegistrationIds para valerte de esto. */ });

Si necesitas algún otro valor dentro del callback puedes pasarlo con (use), (*11)


AndroidGcm::send($registrationIds,function($successRegistrationIds) use($otherValue1,$otherValue2){ /* */ });

Para obtener la respuesta real del GCM, (*12)


AndroidGcm::getApiResponse()

The Versions

10/04 2014

dev-master

9999999-dev

Send push notification with GCM

  Sources   Download

GPL-3.0

The Requires

 

by Abraham José González Barboza

10/04 2014

1.0.0

1.0.0.0

Send push notification with GCM

  Sources   Download

GPL-3.0

The Requires

 

by Abraham José González Barboza