Push Notification com: Xamarin, Firebase Cloud Messaging (FCM), App Center Push e App Center Client – Parte 3
Usando a Push API do App Center Push
O App Center nos disponibiliza via Swagger os end points para interagirmos com diversas funções do App Center. Entre essas funções está a Push. Para esse exemplo usaremos:
Esse end point é responsável por criar via POST a notificação no App Center, notificação essa que será disparada de acordo com alguns critérios como: para todos os dispositivos, para usuários específicos, dispositivos específicos entre outros.
Para que o consumo dessa API ocorra é necessário ter uma chave de autorização para passar junto com a requisições, POST, GET e outras. Essa chave poderá ser obtida em Account Settings -> API Tokens no App Center.
Para que o envio da notificação fosse possível criei um método para enviar a notificação via POST.
public Task AdicionarNotificacao(Guid[] devices, string nome, string titulo, string conteudo) { var adicionarNotificacao = new EnviarNotificacao { ConteudoNotificacao = new ConteudoNotificacao { Conteudo = conteudo, Nome = nome, Titulo = titulo }, ObjetivoNotificacao = new ObjetivoNotificacao { Dispositivos = devices } }; return AdicionarBaseHttpClient("v0.1/apps/ferreirafernandar/ClimaTempo/push/notifications", adicionarNotificacao); }
public async Task AdicionarBaseHttpClient(string url, string endpoint, object model, string key) { using (var response = new System.Net.Http.HttpClient()) { var request = MontarRequest(url, endpoint, HttpMethod.Post, key, model)</code> var retorno = response.SendAsync(request, CancellationToken.None).Result; var resultado = retorno.Content.ReadAsStringAsync().Result; return JsonConvert.DeserializeObject(resultado); } }
public HttpRequestMessage MontarRequest(string url, string endpoint, HttpMethod method, string key, object content = null, string mediaType = "application/json") { var request = new HttpRequestMessage { RequestUri = new Uri(url + endpoint), Method = method }; } request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(mediaType)); request.Headers.Add("X-API-Token", key); if (content != null) request.Content = new ObjectContent(content.GetType(), content, new JsonMediaTypeFormatter()); return request; }
E chamei este método no meu serviço
await appCenterService.AdicionarNotificacao( new[] { notificacao.IdDispositivo }, "ClimaTempo", "A temperatura caiu!", $"Cidade de {notificacao.Cidade} com temperatura atual de {cidade.Principal.TemperaturaMinima}°.");
Vale ressaltar que a Push API conta com vários outros métodos para lidar com Push.
Como resultado as notificações chegarão aos dispositivos esperados.
Importante: Caso mantenha o app aberto as notificações não serão apresentadas, sendo assim feche ou minimize.
Bom, pessoal, era isso que queria passar a vocês e espero que possa ser útil em algum momento!
Imagem utilizada no post: Pixabay
Comments
Leave a Comment