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:
-
Armazene todos os tokens do dispositivo, o endpoint ARNs correspondente do Amazon SNS e os carimbos de data/hora em seu servidor de aplicativos.
-
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
É importante que você mantenha up-to-date os tokens. Os tokens de dispositivo do seu usuário podem ser alterados nas seguintes condições:
-
O aplicativo móvel é restaurado em um novo dispositivo.
-
O usuário desinstala ou atualiza o aplicativo.
-
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
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 umFailureType
deInvalidPlatformToken
e umFailureMessage
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.