Gerenciamento de endpoints do Firebase Cloud Messaging (FCM) - Amazon Simple Notification Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de endpoints do Firebase Cloud Messaging (FCM)

Gerenciamento e manutenção de tokens de dispositivos

Você pode garantir a capacidade de entrega das notificações push do seu aplicativo móvel seguindo estas etapas:

  1. Armazene todos os tokens do dispositivo, o SNS endpoint ARNs da Amazon correspondente e os carimbos de data/hora em seu servidor de aplicativos.

  2. Remova todos os tokens obsoletos e exclua o SNS endpoint ARNs da Amazon correspondente.

Na inicialização inicial do seu aplicativo, você receberá um token de dispositivo (também conhecido como token de registro) para o dispositivo. Esse token de dispositivo é gerado pelo sistema operacional do dispositivo e está vinculado ao seu FCM aplicativo. Depois de receber esse token de dispositivo, você pode registrá-lo na Amazon SNS como um endpoint da plataforma. Recomendamos que você armazene o token do dispositivo, o endpoint ARN da SNS plataforma Amazon e o timestamp salvando-os em seu servidor de aplicativos ou em outro armazenamento persistente. Para configurar seu FCM aplicativo para recuperar e armazenar tokens de dispositivos, consulte Recuperar e armazenar tokens de registro na documentação do Firebase do Google.

É importante que você mantenha up-to-date os tokens. Os tokens do dispositivo do seu usuário podem mudar sob as seguintes condições:

  1. O aplicativo móvel é restaurado em um novo dispositivo.

  2. O usuário desinstala ou atualiza o aplicativo.

  3. O usuário limpa os dados do aplicativo.

Quando o token do seu dispositivo for alterado, recomendamos que você atualize o SNS endpoint correspondente da Amazon com o novo token. Isso permite que SNS a Amazon continue se comunicando com o dispositivo registrado. Você pode fazer isso implementando o seguinte pseudocódigo em seu aplicativo móvel. Ele descreve uma prática recomendada para criar e manter endpoints de plataforma habilitados. Essa abordagem pode ser executada sempre que os aplicativos móveis são iniciados ou como um trabalho agendado em segundo plano.

Pseudocódigo

Use o seguinte FCM pseudocódigo para gerenciar e manter os tokens do dispositivo.

retrieve the latest token from the mobile OS if (endpoint arn not stored) # first time registration call CreatePlatformEndpoint store returned endpoint arn endif call GetEndpointAttributes on the endpoint arn if (getting attributes encountered NotFound exception) #endpoint was deleted call CreatePlatformEndpoint store returned endpoint arn else if (token in endpoint does not match latest) or (GetEndpointAttributes shows endpoint as disabled) call SetEndpointAttributes to set the latest token and enable the endpoint endif endif

Para saber mais sobre os requisitos de atualização de tokens, consulte Atualizar tokens regularmente na documentação do Firebase do Google.

Detectando tokens inválidos

Quando uma mensagem é enviada para um endpoint FCM v1 com um token de dispositivo inválido, a Amazon SNS receberá uma das seguintes exceções:

  • UNREGISTERED(HTTP404) — Quando a Amazon SNS receber essa exceção, você receberá um evento de falha na entrega com um token FailureType de InvalidPlatformToken plataforma FailureMessage de e um de associado ao endpoint não é válido. A Amazon SNS desativará o endpoint da sua plataforma quando uma entrega falhar, com essa exceção.

  • INVALID_ARGUMENT(HTTP400) — Quando a Amazon SNS recebe essa exceção, significa que o token do dispositivo ou a carga útil da mensagem é inválida. Para obter mais informações, consulte ErrorCodea documentação do Firebase do Google.

Como INVALID_ARGUMENT pode ser devolvido em qualquer um desses casos, a Amazon SNS retornará um FailureType de InvalidNotification e um corpo FailureMessage de notificação é inválido. Ao receber esse erro, verifique se sua carga está correta. Se estiver correto, verifique se o token do dispositivo está up-to-date. A Amazon não SNS desativará o endpoint da sua plataforma quando uma entrega falhar, com essa exceção.

Outro caso em que você enfrentará um evento de falha na InvalidPlatformToken entrega é quando o token do dispositivo registrado não pertence ao aplicativo que está tentando enviar essa mensagem. Nesse caso, o Google retornará um erro SENDER_ID_ MISMATCH. A Amazon SNS desativará o endpoint da sua plataforma quando uma entrega falhar, com essa exceção.

Todos os códigos de erro observados recebidos da FCM v1 API estão disponíveis para você CloudWatch quando você configura o registro do status de entrega do seu aplicativo.

Para receber eventos de entrega para seu aplicativo, consulteEventos do aplicativo disponíveis.

Removendo tokens obsoletos

Os tokens são considerados obsoletos quando as entregas de mensagens ao dispositivo terminal começam a falhar. A Amazon SNS define esses tokens obsoletos como endpoints desativados para seu aplicativo de plataforma. Quando você publica em um endpoint desativado, a Amazon SNS retornará um EventDeliveryFailure evento com o FailureType deEndpointDisabled, e um endpoint FailureMessage of será desativado. Para receber eventos de entrega para seu aplicativo, consulteEventos do aplicativo disponíveis.

Ao receber esse erro da AmazonSNS, você precisa remover ou atualizar o token obsoleto no aplicativo da sua plataforma.