.Net

Utilizando .NET es posible integrarse con Puship en pocos y simple pasos, es suficiente agregar a tu proyecto la referencia a PushipApi.dll, ajustar l’Appld de la aplicación con la qual se desea interaccionar y las credenciales de tu perfil Puship.

Credentials cr = new Credentials("MRossi", "PassWord"); //Secta Username y Password                                       
CoreApi ca = new CoreApi("APKCbOd72fXKVUU", cr); // Ajusta AppId y las credenciales precedentemente creadas.

A este punto es posible empezar a efectuar llamadas con los siguientes metodos:  

 

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 las 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: Record de salida 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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1"); //Filtro de la plataforma Apple
JArray al = ca.GetPushMessages(param);

 

Lectura de notificaciones por Tag

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

Ejemplo:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1");
HashSet tagmaps = new HashSet();
tagmaps.Add("Libra"); //Tag number 1
tagmaps.Add("Virgo"); //Tag number 2
param.Add("Tags", tagmaps);
JArray al= ca.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:

Dctionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1");  
param.Add("Latitude", "45.44085");  //Latitud al centro de Venecia 
param.Add("Longitude", "12.31552"); //Longitud al centro de Venecia
JArray al= ca.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:

Dctionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1");  
param.Add("IncludeParams", "True");
JArray al= ca.GetPushMessages(param); 

 

Lectura con adjunta de notificaciones enviadas singolarmente

Usando el parámetro DeviceId , es posible cojer todas las notificaciones enviada a cada especifico Device (del momento en que fue registrado) conforme a los filtros. El resultado En este caso sera una union de los resultados obtenidos usando los filtros con los registros cojidos por cada especifico Device

Ejemplo:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1");
param.Add("DeviceId", "APKCbOd72fXKVUU_7a6ff1f023039299");
JArray al= ca.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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("Limit", "10");
param.Add("Offset", "0");
param.Add("IncludeParams", "True");
JArray al = ca.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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1");
param.Add("DeviceId", "APKCbOd72fXKVUU_7a6ff1f023039299");
JArray al= ca.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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("Limit", "10");
param.Add("Offset", "0");
JArray al = ca.GetApps(param);

ATTENCION: Esta llamada no nececita del ajuste del AppId (new CoreApi(null, cr);)

 

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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("PushMessageId", "APKCbOd72fXKVUU_635192605191400000"); //Id de la notificación de eliminar 
JObject al = ca.DeletePushMessage(param);

 

Eliminación de los 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 array di stringhe: 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:

HashSet<String> devicetodelete = new HashSet<String>();
devicetodelete.Add("jS0oE8PtHcVerde_05CD0C12-35A7-4123-8E9F-AA74FF418A18"); //ID del Device da eliminar
devicetodelete.Add("jS0oE8PtHcVerde_0FDFED66-3CD6-4208-BAA1-90968D1AFA01");
devicetodelete.Add("jS0oE8PtHcVerde_7a6ff0f023039299");
param.Add("Devices", devicetodelete);
JObject al = ca.DeleteDevices(param);

 

Lectura de los filtros

Esta secion explica como poder integrar con filtros

 

Lectura de los filtros de 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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("ReturnHistory", "True");
JArray al = ca.GetAppTagFilters(param);

 

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 acaba de completar

Ejemplo:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceId", "jS0oE8PtHcVerde_E57F63B1-E43F-48F0-8A08-149F7168A1DE");
param.Add("Tag", "Libra"); //Ajusta el tag que quieres adjuntar 
JObject al = ca.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 remover 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 acaba de completar

Ejemplo:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceId", "jS0oE8PtHcVerde_E57F63B1-E43F-48F0-8A08-149F7168A1DE");
param.Add("Tag", "Libra"); //Ajusta el tag que quieres remover  
JObject al = ca.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 remover 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 acaba de completar

Ejemplo:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceId", "jS0oE8PtHcVerde_E57F63B1-E43F-48F0-8A08-149F7168A1DE");
JObject al = ca.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:

JArray al= ca.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

Ejemplo:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("DeviceType", "1"); //Filtro de la plataforma Apple	
JArray al = ca.GetDevices(param);

 

Lectura de los device por Tag

Setting the Tags parameter, would filter the devices by a set of tag.

Usage example:

Dictionary<String, Object> param= new Dictionary<String, Object>();
Set tagmaps = new HashSet();
tagmaps.Add("Libra"); //Tag número 1 
tagmaps.Add("Virgo"); //Tag número 2 
param.Add("Tags", tagmaps);
JArray al= ca.GetDevices(param);

 

Lectura de los device por Area

Permite de filtrar los Device conforme a las ubicaciones registradas.

Ejemplo:

Dictionary<String, Object> param= new Dictionary<String, Object>();
param.Add("P1Latitude", "40.42163694648697"); //set Venice area
param.Add("P1Longitude", "10.299156188964844");
param.Add("P2Latitude", "47.45030563100575");
param.Add("P2Longitude", "15.368927001953125");
param.Add("LastPositionNumber", "5"); //Queremos que la registración en el área de Venecia seaefecuada solamente entra las ultimas 5 registraciones 
//Codigo para la conversión a UTC  http://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx
TimeZoneInfo tm = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
DateTime d = new DateTime (2014, 6, 11, 18, 0, 0); //June, 11, 2014, 18:00
d = TimeZoneInfo.ConvertTimeToUtc(d, tm);
param.Add("LastPositionDate", d.Ticks); //Muestra los Device registrados después de la fecha insertada 
JArray al= ca.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:

Dictionary<String, Object> param = new Dictionary<String, Object>();
param.Add("Message", "Push message from c# to all wp 2");
param.Add("Badge", "2");
param.Add("Push", "True");
param.Add("Sound", "Default");
param.Add("SendIOS", "False");
param.Add("SendAndroid", "False");
param.Add("SendBB", "False");
param.Add("SendWP", "True");	//push enviada a Windows Phone devices
JArray al= ca.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:

Dictionary<String, Object> param =  new Dictionary<String, Object>();
param.Add("Message", "Push sent to Android devices associated to tag Virgo or Libra!");
param.Add("SendIOS", "False");
param.Add("SendAndroid", "True");
param.Add("SendBB", "False");
param.Add("SendWP", "False");
HashSet tagmaps = new HashSet();
tagmaps.Add("Libra"); //Tag número 1 
tagmaps.Add("Virgo"); //Tag número 2 
param.Add("Tags", tagmaps);
JArray al= ca.SendPushMessage(param);

 

Envio de una notificacion por Area

Allows to send notifications to a set of devices registered to a specific area.

Usage example:

Dictionary<String, Object> param =  new Dictionary<String, Object>();
param.Add("Message", "Push sent to all Android devices registrated in Venice in the last 2 months");
param.Add("SendIOS", "False");
param.Add("SendAndroid", "True");
param.Add("SendBB", "False");
param.Add("SendWP", "False");
param.Add("P1Latitude", "40.42163694648697"); //Impostamos el área de Venecia
param.Add("P1Longitude", "10.299156188964844");
param.Add("P2Latitude", "47.45030563100575");
param.Add("P2Longitude", "15.36892001953125");
//Codigo para la conversión a UTC  http://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx
TimeZoneInfo tm = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
DateTime d = new DateTime (2014, 6, 11, 18, 0, 0); //June, 11, 2014, 18:00
d = TimeZoneInfo.ConvertTimeToUtc(d, tm);
param.Add("LastPositionDate", d.Ticks);
JArray al= ca.SendPushMessage(param);

 

Envio de una notificacion con Parametros

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

Ejemplo:

Dictionary<String, Object> param =  new Dictionary<String, Object>();
param.Add("Message", "Push sent to Android devices with 5 generic parameters");
param.Add("SendIOS", "False");
param.Add("SendAndroid", "True");
param.Add("SendBB", "False");
param.Add("SendWP", "False");
Dictionary<String, String> pars = new Dictionary<String, String>(); // You can set simple text, urls, pages...
pars.Add("Param1", "Param number 1");
pars.Add("Param2", "https://www.facebook.com/OfficialPuship");
pars.Add("Param3", "index.html");
pars.Add("Param4", "122.45");
pars.Add("Param5", "Special chars:  \'%1234567890\"!£$%&/()=?^éè@#°§ù-,'"); //Max 5 params, the subsequent ones are ignored
param.Add("Params", pars);
JArray al= ca.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:

Dictionary<String, Object> param=  new Dictionary<String, Object>();
param.Add("Message", "Push inviata a due specifici device");
HashSet devicetosend = new HashSet();
devicetosend.Add("APKCbOd72fXKVUU_b87389c9-5e86-45cd-88e0-9cc239643faf"); //Device number 1 (microsoft device)
devicetosend.Add("APKCbOd72fXKVUU_7a6ff0f023039299"); //Device number 2 (android device)
param.Add("Devices", devicetosend);
JArray al= ca.SendPushMessageByDevice(param);

 

Adentro del file PushipApi.dll por ejemplo puedes encontrar la cobertura de configuracion y los metodos utilizados