Php

Utilizando PHP es posible integrarse con Puship en pocos pasos, es suficiente inserir en tu proyecto el file PushipApi.php, programar la Appld de la aplicación con la cual se desea interaccionarse, el Username y la Password de tu perfil Puship, el EnableDebug(default false), y el timezone para la conversión de las fechas.

date_default_timezone_set('Europe/Rome'); //Set the desired timezone to use during the conversion of the date coming from Puship

require_once('PushipApi.php');

$config = array();
$config['AppId'] = 'APKCbOd72fXKVUU';
$config['Username'] = 'MRossi';
$config['Password'] = 'PassWord';

$puship = new PushipApi($config);

$puship -> EnableDebug = true; //Shows URL, URL Parameters, and the Response from the Server

A este punto es posible empezar a efectuar llamadas con los siguientes métodos: 

 

Lectura de notificaciones

La lectura de notificaciones se puede hacer utilizando algunos parámetros que pueden ser conjuntos entre ellos. Permitiendo de recuperar por ejemplo los push por una determinada plataforma y una ubicación especifica. El método que hay que utilizar es: GetPushMessages(param)
Los parámetros posibles son:
DeviceType int: Las notificaciones son filtradas por Plataforma (Parámetro obligatorio)
Limit int:Número máximo de registros devueltos en la llamada (default 5)
Offset long: Nùmero de registros inicial para la lectura paginada (default 0)
Tags strings array: Filtra las noficaciones por cada tag enviado
DeviceId string: Agrega a los resultados las notificaciones envida a un especifico device Latitude double: Latitud de la posiciòn
Longitude double: Longitud de la posiciòn
IncludeParams boolean: True si desea incluir parametros de la notificación (default false).

El resultado es un array de objetos que contienen los siguientes atributos:
PushMessageId string: ID de la notificación
Date datetime: Fecha y la ora en el formato JSON
Message string: Texto de la notificación
Params hashmap of strings: Lista de los parámetros, Llaves: Param1, Param2, Param3, Param4, Param5
 

Lectura de notificaciones por Plataforma

Permite de recuperar las notificaciones conforme a la plataforma a la cual fueron asociadas. Es suficiente ajustar uno de lo siguiente valores en el parámetro DeviceType:
1 = Plataforma Apple
2 = Plataforma GCM
3 = Plataforma WP7/8
4 = BlackBerry

Ejemplo:

$param = array();
$param['DeviceType'] = '1'; //Filtro de la plataforma Apple	
$puship->GetPushMessages($param);

 

Lectura de notificaciones por Tag

Permite de filtrar las notificaciones por Tags a la cual son asociadas. Por default, si no viene ajustado ningún Tag, serán devueltas todas las notificaciones, independientemente de los Tag asociado.

Ejemplo:

$param = array();
$param['DeviceType'] = '1';
$tagstosend = array();
$tagstosend[0]='Virgo'; //Tag número 1 
$tagstosend[1]='Libra'; //Tag número 2
$param['Tags'] = $tagstosend;
$puship->GetPushMessages($param);

 

Lectura de notificaciones por Posición.

Permite de recuperar las notificaciones conforme al área a ellas asociadas. Por default, si no viene ajustada ninguna posición, serán devueltas todas las notificaciones independientemente al área asociada.

Ejemplo:

$param = array();
$param['DeviceType'] = '1';
$param['Latitude'] = '45.44085'; //Latitud al centro de Venecia 
$param['Longitude'] = '12.31552'; //Longitud al centro de Venecia
$puship->GetPushMessages($param);

 

Lectura de notificaciones con Parametros

Permite de recuperar las notificaciones y los parámetros asociados. De default los parámetros no serán incluidos para minimizar la trasmisión de los datos.

Ejemplo:

$param = array();
$param['DeviceType'] = '1';
$param['IncludeParams'] = 'True';
$puship->GetPushMessages($param);

 

Lectura con adjunta de notificaciones enviadas singolarmente

Permite de integrar a los resultados de los precedentes filtros todas las notificas que el dispositivo ha recibido del momento en que fue registrado.

Ejemplo:

$param = array();
$param['DeviceType'] = '1';
$param['DeviceId'] = 'APKCbOd72fXKVUU_7a6ff1f023039299';  
$puship->GetPushMessages($param);

Esta solicitud devuelve todas las notificaciones Push enviadas a los dispositivos Apple y todas las notificaciones enviadas al dispositivo con id APKCbOd72fXKVUU_7a6ff1f023039299.
 

Lectura de todas las notificas

Permite de recuperar todas las notificaciones enviadas como serán visualizadas en la dashboard de Puship.

Ejemplo:

$param = array();
 	 	$param['Limit'] = '15';
 	 	$param['Offset'] = '0';
 	 	$param['IncludeParams'] = 'True'; // default false
 	 	$puship->GetAllPushMessages($param);

Esta solicitud regresa todas las notificas push adjuntando los parámetros.

ATTENCION: Los elementos del array contaran también los atributos booleanos SentToAPNS, SentToBpns SentToMpns, SentToGCM que identifican para cual plataforma fue enviada la notifa

 

Lectura de notificaciones por Device

Esta modalidad permite de leer las notificaciones enviadas a un determinado Device el método que hay que utilizar es: GetPushMessagesByDevice (param)
Los parámetros posibles son:
DeviceId string: Es el id del Device del cual quiere obtener las notificaciones (obligatorio)
Limit int: Es el número máximo de registros devuelto de la llamada (default 5)
Offset long: Son los registros iniciales para la lectura paginada (default 0) IncludeParams boolean: True si desea incluir parametros de la notificación (default false)
El resultado es un Array de objetos que contiene los siguientes atributos:
PushMessageId string: ID de la notificación
Date datetime: Fecha y la ora en el formato JSON
Message string: Texto de la notificación
Params hashmap of strings: Lista de los parámetros, Llaves: Param1, Param2, Param3, Param4, Param5

Ejemplo:

$param = array();
$param['DeviceType'] = '1';
$param['DeviceId'] = 'APKCbOd72fXKVUU_7a6ff1f023039299';  
$puship->GetPushMessagesByDevice($param);

 

Lectura de las App

Esta modalidad permite de recuperar la lista de las aplicaciones

El método que hay que utilizar es: GetApps (param)

Los posibles parámetros son:

Limit int: Numero de record máximos devueltos por la llamada (default 5)

Offset long: Record de salida para la lectura paginada (default 0)

El resultado es un array de objetos que contiene los siguientes atributos:

AccessCode string: ID de la aplicacione

Created datetime: Fecha y hora de creación en el formato json

Updated datetime: Fecha y hora de la última actualización en el formato json

Name string: Nombre de la aplicación

Development boolean: True Si el APNS es configurado para el desarrollo, False si es configurado para producion

EnableAPNS boolean: True Si el APNS es configurado

EnableBPNS boolean: True Si el BPNS es configurado

EnableMPNS boolean: True Si el MPNS es configurado

EnableGCM boolean: True Si el GCM es configurado

Ejemplo:

$param = array();
$param['Limit'] = '15';
$param['Offset'] = '0';
$puship->GetApps($param);

ATTENCION: Esta llamada no nececita del ajuste del AppId (new CoreApi(null, cr);) ($config[‘AppId’] = ‘APKCbOd72fXKVUU’;)

 

Eliminación de una notificación

Permite de eliminar una notificación conforme a su ID.
El método que hay que utilizar es: DeletePushMessage (param)
Los parámetros posibles son:
PushMessageId string: es el id de la notificación que hay que eliminar (obligatorio)
El resultado es un objeto que contiene los siguientes atributos:
Error boolean: Vuelve aparecer True si hay un error
Message string: Mensaje relativo al error o a la acción apenas terminada
Ejemplo:

$pushparam = array();
$pushparam['PushMessageId'] = 'APKCbOd72fXKVUU_635192605191400000'; // Id of the notification to be deleted
$puship->DeletePushMessage($pushparam);

 

Eliminazione dei device

Permite de eliminar una lista de device clasificados por Id.

El método que hay que utilizar es: DeleteDevices (param)

Los posibles parámetros son:

Devices strings array: Lista de los Id de los devices que hay que eliminar (obligatorio)

El resultado es un objeto conteniente los siguientes atributos:

Error boolean: Aparece True si hay un error

Message string: Mensaje relativo al error o a la acción que se termina de completar

StringParam1 string: Si la acción viene completada con suceso contiene el número de los devices eliminados

Ejemplo:

$pushparam = array();
$devicetodelete = array();
$devicetodelete[0] = 'jS0oE8PtHcVerde_05CD0C12-35A7-4123-8E9F-AA74FF418A18'; //id del device da eliminare
$devicetodelete[1] = 'jS0oE8PtHcVerde_0FDFED66-3CD6-4208-BAA1-90968D1AFA01'; 
$devicetodelete[2] = 'jS0oE8PtHcVerde_7a6ff0f023039299';
$pushparam['Devices'] = $devicetodelete;
$puship->DeleteDevices($pushparam);

 

Lectura de los filtros

Esta secion explica como poder integrar con filtros

 

Lectura de los filtros de la aplicación

Este método permite de leer los Filtros asociados a la aplicación.El método que hay que utilizar es: GetAppTagFilters (param)
Los parámetros posibles son:
ReturnHystory boolean: Si ajustado a True la lectura devolverá también los filtros utilizados antes pero que ya no están asociados a ningún device (default false).
El resultado es un Array String
Ejemplo:

$tagparam = array();
$tagparam['ReturnHystory']='True';
$puship->GetAppTagFilters($tagparam);

 

Adjunta de un filtro al device

Este método perite de adjuntar un filtro a un device.

El método que hay que utilizar es: AddTagFilter (param)

Los posibles parámetros son:

DeviceId string: ID del Device por el cual se quiere adjuntar el Tag (obligatorio)

Tag string: Tag que se quiere adjuntar al Device (obligatorio)

El resultado es un objeto conteniente los siguientes atributos:

Error boolean: Aparece True si hay un error

Message string: Mensaje relativo al error o a la acción que se termina de completar

Ejemplo:

$param = array();
$param['DeviceId'] = 'APKCbOd72fXKVUU_7a6ff1f023039299';
$param['Tag'] = 'Libra'; //Ajusta el tag que quieres adjuntar 
$puship->AddTagFilter($param);

 

Remoción de un filtro del device

Este método permite de remover un filtro de un device.

El método que hay que utilizar es: RemoveTagFilter (param)

Los posibles parámetros son:

DeviceId string: ID del Device por el cual se quiere adjuntar el Tag (obligatorio)

Tag string: Tag que se quiere remover del Device (obligatorio)

El resultado es un objeto conteniente los siguientes atributos:

Error boolean: Aparece True si hay un error

Message string: Mensaje relativo al error o a la acción que se termina de completar

Ejemplo:

$param = array();
$param['DeviceId'] = 'APKCbOd72fXKVUU_7a6ff1f023039299';
$param['Tag'] = 'Libra'; //Ajusta el tag que quieres remover 
$puship->RemoveTagFilter($param);

 

Remoción de todos los filtros del device

Este metodopermite de remover todos los filtros de un device.

El método que hay que utilizar es: CleanTagFilter (param)

Los posibles parámetros son:

DeviceId string: ID del Device por el cual se quiere adjuntar el Tag (obligatorio)

El resultado es un objeto conteniente los siguientes atributos:

Error boolean: Aparece True si hay un error

Message string: Mensaje relativo al error o a la acción que se termina de completar

Ejemplo:

$param = array();
$param['DeviceId'] = 'APKCbOd72fXKVUU_7a6ff1f023039299';
$puship->CleanTagFilter($param);

 

Lectura de los Device

La lectura de los device registrados puede ser filtrada utilizando diferentes parámetros, y que pueden ser combinados entre ellos. Por ejemplo es posible recuperar los device de una determinada plataforma presente en un especifica área.
El método que hay que utilizar es: GetDevices (param)
Los parámetros posibles son:
DeviceType int: filtra las notificaciones por plataforma
Limit int: Es el número máximo de registros devuelto de la llamada (default 5)
Offset long: Son los registros iniciales para la lectura paginada (default 0) Tags strings array: Filtra las notificaciones por Tag enviados
Expired boolean: Devuelve también los Device con Token vencido

Point Example

P1Latitude double: : Es la latitud del Punto 1 de la ubicación que hay que filtrar P1Longitude double: Es la longitud del Punto 1 de la ubicación que hay que filtrar P2Latitude double: Es la latitud del Punto 2 de la ubicación que hay que filtrar P2Longitude double: Es la longitud del Punto 2 de la ubicación que hay que filtrar LastPositionDate time: Fecha en UTC de la cual se considera la registración de la ubicación
LastPositionNumber int: Es el número de las últimas ubicaciones que hay que tener en consideración (default infinite)
El resultado es un array de objetos que contienen los siguientes atributos:
DeviceId string: Es el id del Device
Expired boolean: True si el Token es vencido
DeviceType int: Es la plataforma del Device
Created datetime: Fecha y la ora de la primera registración del Device en formato JSON
Updated datetime: Fecha y la ora de actualización de la registración en formato JSON
 

Simple lectura de los Device

La simple lectura devuelve todos los Device registrados independientemente de cualquiera filtro y plataforma.
Siguiendo encuentran un ejemplo:

$puship->GetDevices();

 

Lectura de los device por Plataforma

Permite de filtrar los Device conforme a una plataforma. Es suficiente ajustar uno de los siguientes valores en el parámetro DeviceType:
1 = Plataforma Apple
2 = Plataforma GCM
3 = Plataforma WP7/8
4 = BlackBerry
Usage example:

$param = array();
$param['DeviceType'] = '1'; // Apple Platform filter
$puship->GetDevices($param);

 

Lectura de los device por Tag

Permite de filtrar los Device conforme a uno o mas Tags
Ejemplo:

$param = array();
$tagstosend = array();
$tagstosend[0]='Virgo'; //Tag number 1
$tagstosend[1]='Libra'; //Tag number 2
$param['Tags'] = $tagstosend;
$puship->GetDevices($param);

 

Lectura de los device por Area

Permite de filtrar los Device conforme a las ubicaciones registradas.
Ejemplo:

$param = array();
$param['P1Latitude'] = '40.42163694648697'; //Impostamos el área de Venecia
$param['P1Longitude'] = '10.299156188964844';
$param['P2Latitude'] = '47.45030563100575';
$param['P2Longitude'] = '15.368927001953125';
$param['LastPositionNumber'] = '5'; // We want that the registration in the Venice area is one of the last 5 registrations
$param['LastPositionDate'] = strtotime('-10 days UTC'); // The registration has to be done less than 10 days ago
$puship->GetDevices($param);

 

Envio de una notificacion

El envío de una notificación puede ser efectuado utilizando diferentes parámetros, también combinado entre ellos. Por ejemplo es posible enviar una notificación para una determinada plataforma, una especifica área y un determinado Tag.
El metodo que hay que utilizar es: SendPushMessage (param)
Los parámetros posibles son:
SendIOS boolean:Envía la notificación a la plataforma IOS (default false)
SendAndroid boolean: Envía la notificación a la plataforma Android (default false)
SendBB boolean: Envía la notificación a la plataforma BB (default false)
SendWP boolean: Envía la notificación a la plataforma WP7/8 (default false)
Message string: Es el mensaje que queremos enviar
Badge int: Badge es asociado a la notificación (default 1)
Push boolean: Ajusta el envío (true) o solo la salvación (false) de la notificación (default true)
Sound string: Es el nombre del file que reproduce a la llegada de la notificación (default Default)
Tags strings array: Filtra las notificaciones por Tag enviados

Point Example

P1Latitude double: Es la latitud del Punto1 de la ubicación que hay que filtrar P1Longitude double: Es la longitud del Punto 1 de la ubicación que hay que filtrar P2Latitude double: Es la latitud del Punto 2 de la ubicación que hay que filtrar P2Longitude double: Es la longitud del Punto 2 de la ubicación que hay que filtrar LastPositionDate time: Es la fecha en UTC de la cual hay que considerar la registración de la ubicación
LastPositionNumber int:Es el número de las ultimas ubicaciones que hay que tener en consideración (default infinite)
Params hashmap of strings: Es el mapa con un máximo de 5 elementos para inserir los parámetros genéricos
El resultado es un objeto conteniente los siguientes atributos:
Error boolean: Vuelve a aparecer True si hay un error
Message string: Es el mensaje relativo al error o a la acción que se acaba de hacer
StringParam1 string: Si la acción viene completada con éxito positivo contendrá el ID de la notificación que termina de crear

Envio de una nitificacion por Plataforma

Permite de enviar o salvar una notificación conforme a las plataformas. Es necesario ajustar por lo menos uno de los siguientes parámetros a true:
SendIOS
SendAndroid
SendBB
SendWP
Ejemplo:

$param = array();
$param['Message'] = 'Push sent to all Apple and Android devices!';
$param['SendIOS'] = 'True';
$param['SendAndroid'] = 'True';
$param['SendBB'] = 'False';
$param['SendWP'] = 'False';
$puship->SendPushMessage($param);

 

Envio de una notificacion por Tag

Permite de enviar o salvar una notifica conforme a los Tag por los cuales el Device fue registrado.
Ejemplo:

$param = array();
$param['Message'] = 'Push sent to Android devices associated to the tag Virgo or Libra!';
$param['SendIOS'] = 'False';
$param['SendAndroid'] = 'True';
$param['SendBB'] = 'False';
$param['SendWP'] = 'False';
$tagstosend = array();
$tagstosend[0]='Virgo'; //Tag número 1 
$tagstosend[1]='Libra'; //Tag número 2
$param['Tags'] = $tagstosend;
$puship->SendPushMessage($param);

 

Envio de una notificacion por Area

Permite de enviar o salvar una notificación conforme a las posiciones en las cuales el Device se registró.
Ejemplo:

$param = array();
$param['Message'] = 'Push sent to Android devices registered at Venice in the last 2 months';
$param['SendIOS'] = 'False';
$param['SendAndroid'] = 'True';
$param['SendBB'] = 'False';
$param['SendWP'] = 'False';
$param['P1Latitude'] = '40.42163694648697'; // Set Venice area
$param['P1Longitude'] = '10.299156188964844';
$param['P2Latitude'] = '47.45030563100575';
$param['P2Longitude'] = '15.368927001953125';
$param['LastPositionDate'] = strtotime('-2 months UTC'); //La registración no tiene que ser más vieja que 2 meses
$puship->SendPushMessage($param);

 

Envio de una notificacion con Parametros

Permite de enviar o salvar una notificación con parámetros genéricos.
Ejemplo:

$param = array();
$param['Message'] = 'Push sent to Android devices with 5 generic parameters';
$param['SendIOS'] = 'False';
$param['SendAndroid'] = 'True';
$param['SendBB'] = 'False';
$param['SendWP'] = 'False';
$params = array(); // You can set simple text, urls, pages...
$params['Param1'] = 'Param number 1';
$params['Param2'] = 'https://www.facebook.com/OfficialPuship';
$params['Param3'] = 'index.html';
$params['Param4'] = '122.45';
$params['Param5'] = 'Special chars:  \'%1234567890"!£$%&/()=?^éè@#°§ù-,\'';   //Max 5 parámetros, los siguientes serán ignorados
$push['Params'] = $params;
$puship->SendPushMessage($param);

 

Envio de una notificacion por Device

Permite de enviar o asociar una notificación a uno o más device segundo a sus Id.
El método que hay que utilizar es: SendPushMessageByDevice (param)
Los parámetros posibles son:
Message string: Es el mensaje que queremos enviar
Badge int: Es el Badge asociado a la notificación (default 1)
Push boolean: Ajusta el envio (true) o solo la salvación (false) de la notificación (default true)
Sound string: Es el nombre del file que será reproducido al momento de la llegada de la notificación (default Default)
Devices strings array: Es el Id de los deivce a los cuales envía la notificación (por lo menos un elemento obligatorio)
Params hashmap of strings: Es el mapa con máximo 5 elementos para inserir parámetros genéricos
El resultado es un objeto conteniente los siguientes atributos:
Error boolean: : Vuelve a aparecer True si hay un error
Message string: Es el mensaje relativo al error o a la acción que acaba de terminar StringParam1 string: Si la acción viene completada con éxito positivo contendrá el ID de la notificación que acaba de crear
Ejemplo:

$param = array();
$param['Message'] = 'Push sent to two specific devices!';
$devicestosend = array();
$devicestosend[0] = 'APKCbOd72fXKVUU_b87389c9-5e86-45cd-88e0-9cc239643faf'; //Device number 1 (microsoft device)
$devicestosend[1] = 'APKCbOd72fXKVUU_7a6ff0f023039299'; //Device number 2 (android device)
$param['Devices'] = $devicestosend;
$puship->SendPushMessageByDevice($param);

Descargando el file PushipApi.php encontraran también un file de ejemplo para la configuración y las llamadas a los varios métodos.