private string crearParamsNotificaciones(notificacion_mensaje mensaje) { bool enviar_sin_enviar = false;//true para desarrollar. simula el envio //string priority = "normal"; string priority = "high"; //si es mensaje para un topic string[] registration_ids; registration_ids = getRegistrationIds(mensaje); if (!registration_ids.Any()) { return(""); } else { ///////////////////////////////////////////////// var objNotification = new { registration_ids = registration_ids, priority = priority, content_available = true, dry_run = enviar_sin_enviar, notification = new { body = mensaje.descripcion, title = mensaje.titulo, icon = "myicon", sound = "default" } }; return(Newtonsoft.Json.JsonConvert.SerializeObject(objNotification)); } }
public IHttpActionResult Posttoken(token token) { FirebaseService fb = new FirebaseService(); bool primeraVez = fb.registerTokenIfNotExists(token); if (primeraVez) { notificacion_mensaje m = new notificacion_mensaje(); m.cliente_sk = token.sk_entidad; m.usuario_sk = token.usuario_sk; //ClienteService cs = new ClienteService(); //var clientFound = cs.buscarById(m.cliente_sk); m.descripcion = "Netmefy"; m.titulo = "Bienvenido"; //m.usuario_sk = 0; fb.EnviarAFCM(m); } return(CreatedAtRoute("DefaultApi", new { id = token.id }, token)); }
private string[] getRegistrationIds(notificacion_mensaje notificacion_mensaje) { List <token> nts; if (notificacion_mensaje.usuario_sk == 0) { nts = this.ObtenerTokenPorUsernameCliente(notificacion_mensaje.cliente_sk); } else { nts = this.ObtenerTokenPorUsernameUsuario(notificacion_mensaje.usuario_sk); } List <string> registration_ids = new List <string>(); foreach (token nt in nts) { registration_ids.Add(nt.tokenid); } return(registration_ids.ToArray()); }
public bool EnviarAFCM(notificacion_mensaje mensaje) { WebRequest tRequest = createWebRequestPush(); string jsonNotificationFormat = crearParamsNotificaciones(mensaje); if (jsonNotificationFormat == "") { return(false); } else { Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationFormat); tRequest.ContentLength = byteArray.Length; using (Stream dataStream = tRequest.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); using (WebResponse tResponse = tRequest.GetResponse()) { using (Stream dataStreamResponse = tResponse.GetResponseStream()) { using (StreamReader tReader = new StreamReader(dataStreamResponse)) { String responseFromFirebaseServer = tReader.ReadToEnd(); //LogRepository.LOG_INFO((int)mensaje.doc_tipo, mensaje.doc_numero, responseFromFirebaseServer); FCMResponse fcmResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <FCMResponse>(responseFromFirebaseServer); //como manda a muchos es dificil saber si ejecuto todos bien return(true); //return fcmResponse.success !=0; } } } } } }