Gerenciamento de endpoints do Firebase Cloud Messaging pelo Amazon SNS - 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 pelo Amazon SNS

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 endpoint ARNs correspondente do Amazon SNS e os carimbos de data/hora em seu servidor de aplicativos.

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

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 aplicativo FCM. Depois de receber esse token de dispositivo, você pode registrá-lo no Amazon SNS como um endpoint da plataforma. Recomendamos que você armazene o token do dispositivo, o ARN do endpoint da plataforma Amazon SNS e o carimbo de data/hora salvando-os em seu servidor de aplicativos ou em outro armazenamento persistente. Para configurar seu aplicativo FCM 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 de dispositivo do seu usuário podem ser alterados nas 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 endpoint correspondente do Amazon SNS com o novo token. Isso permite que o Amazon SNS continue a comunicação 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

Saiba como gerenciar e manter tokens de dispositivos usando o pseudocódigo do FCM.

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.

Como detectar tokens inválidas

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

  • UNREGISTERED (HTTP 404): quando o Amazon SNS receber essa exceção, você receberá um evento de falha na entrega com um FailureType de InvalidPlatformToken e um FailureMessage de Token de plataforma associado ao endpoint não é válido. O Amazon SNS desativará o endpoint da sua plataforma quando uma entrega falhar, com essa exceção.

  • INVALID_ARGUMENT (HTTP 400): quando o 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, o Amazon SNS retornará um FailureType de InvalidNotification e um FailureMessage de Notificação de corpo é inválida. Quando você receber esse erro, verifique se sua carga útil está correta. Se estiver correto, verifique se o token do dispositivo está up-to-date. O Amazon 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 entrega do InvalidPlatformToken é 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. O 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 API FCM v1 estão disponíveis CloudWatch quando você configura o registro do status de entrega do seu aplicativo.

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

Remover tokens obsoletos

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

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