Integração de tokens de dispositivos com o Amazon SNS para notificações móveis
Quando você registra um aplicativo e dispositivo móvel com um serviço de notificação pela primeira vez, como o Apple Push Notification Service (APNs) e o Firebase Cloud Messaging (FCM), os tokens de dispositivo ou IDs de registro são retornados pelo serviço de notificação. Quando você adiciona os tokens de dispositivo ou os IDs de registro ao Amazon SNS, eles são usados com a API PlatformApplicationArn
para criar um endpoint para a aplicação e o dispositivo. Quando o Amazon SNS cria o endpoint, um EndpointArn
é retornado. O EndpointArn
é como o Amazon SNS sabe a qual aplicação e dispositivo móvel enviar a mensagem de notificação.
Você pode adicionar tokens de dispositivo e IDs de registro ao Amazon SNS usando os seguintes métodos:
-
Adicionar manualmente um único token à AWS usando o AWS Management Console
-
Fazer upload de vários tokens usando a API
CreatePlatformEndpoint
-
Registrar tokens de dispositivos que instalarão seus aplicativos no futuro
Para adicionar manualmente um token de dispositivo ou ID de registro
-
Faça login no console do Amazon SNS
. -
No painel de navegação, selecione Notificações por push.
-
Na seção Aplicações de plataforma, selecione sua aplicação e escolha Editar. Se você ainda não criou uma aplicação de plataforma, crie uma agora. Para obter instruções sobre como fazer isso, consulte Criar uma aplicação da plataforma Amazon SNS.
-
Escolha Adicionar endpoints.
-
Na caixa Token do endpoint, digite o ID do token ou o ID de registro, dependendo do serviço de notificação usado. Por exemplo, para o ADM e o FCM, informe o ID de registro.
-
(Opcional) Na caixa User Data (Dados do usuário), digite informações aleatórias a serem associadas ao endpoint. O Amazon SNS não usa esses dados. Os dados devem ser no formato UTF-8 e ter menos de 2 KB.
-
Escolha Adicionar endpoints.
Com o endpoint criado, você pode enviar mensagens diretamente para um dispositivo móvel ou enviar mensagens para dispositivos móveis que estejam inscritos em um tópico.
Para fazer o upload de vários tokens usando a API CreatePlatformEndpoint
As etapas a seguir mostram como usar a aplicação Java de exemplo (pacote bulkupload
) fornecida pela AWS para fazer upload de vários tokens (tokens de dispositivo ou IDs de registro) no Amazon SNS. Você pode usar esse aplicativo de amostra para ajudá-lo a começar a fazer upload de tokens existentes.
nota
As etapas a seguir usam o IDE para Java Eclipse. As etapas presumem que você já tenha instalado o AWS SDK for Java e que também tenha as credenciais de segurança da AWS para sua Conta da AWS. Para ter mais informações, consulte AWS SDK for Java
-
Faça o download e descompacte o arquivo snsmobilepush.zip.
-
Crie um novo projeto Java no Eclipse.
-
Importe a pasta
SNSSamples
para o diretório de nível superior do projeto Java recém-criado. No Eclipse, escolha com o botão direito do mouse o nome do projeto Java, escolha Importar, expanda Geral, escolha Sistema de arquivos, escolha Avançar, navegue até a pastaSNSSamples
, escolha OK e escolha Concluir. -
Faça o download de uma cópia da biblioteca OpenCSV
e adicione-a ao Build Path do pacote bulkupload
. -
Abra o arquivo
BulkUpload.properties
contido no pacotebulkupload
. -
Adicione o seguinte ao
BulkUpload.properties
:-
O
ApplicationArn
para o qual você deseja adicionar endpoints. -
O caminho absoluto para o local do arquivo CSV que contém os tokens.
-
Os nomes dos arquivos CSV (como
goodTokens.csv
ebadTokens.csv
) que deverão ser criados para registrar em log os tokens que o Amazon SNS analisa corretamente e aqueles que falham. -
(Opcional) Os caracteres para especificar o delimitador e a cota no arquivo CSV que contém os tokens.
-
(Opcional) O número de threads para usar a fim de criar simultaneamente endpoints. O padrão é 1 thread.
O
BulkUpload.properties
completo deve ser semelhante ao seguinte:applicationarn:arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp csvfilename:C:\\mytokendirectory\\mytokens.csv goodfilename:C:\\mylogfiles\\goodtokens.csv badfilename:C:\\mylogfiles\\badtokens.csv delimiterchar:' quotechar:" numofthreads:5
-
-
Execute a aplicação BatchCreatePlatformEndpointSample.jav para fazer o upload dos tokens para o Amazon SNS.
Neste exemplo, os endpoints que foram criados para os tokens carregados com êxito no Amazon SNS serão registrados em log no
goodTokens.csv
, enquanto os tokens com defeito serão registrados em log nobadTokens.csv
. Além disso, você deve ver logs STD OUT gravados no console do Eclipse, com conteúdo semelhante ao seguinte:<1>[SUCCESS] The endpoint was created with Arn arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp/165j2214-051z-3176-b586-138o3d420071 <2>[ERROR: MALFORMED CSV FILE] Null token found in /mytokendirectory/mytokens.csv
Para registrar tokens de dispositivos que instalarão seus aplicativos no futuro
Você pode usar uma das duas opções a seguir:
-
Use the Amazon Cognito service (Usar o serviço Amazon Cognito): seu aplicativo móvel precisará de credenciais para criar endpoints associados à aplicação de plataforma do Amazon SNS. Recomendamos o uso de credenciais temporárias que expirem após um período de tempo. Para a maioria dos cenários, recomendamos que você use o Amazon Cognito para criar credenciais de segurança temporárias. Para obter mais informações, consulte o Guia do desenvolvedor do Amazon Cognito. Se desejar ser notificado quando um aplicativo for registrado com o Amazon SNS, você poderá se registrar para receber um evento do Amazon SNS que fornecerá o novo ARN do endpoint. Você também pode usar a API
ListEndpointByPlatformApplication
para obter a lista completa de endpoints registrados no Amazon SNS. -
Uso de um servidor de proxy: se a infraestrutura do aplicativo já estiver configurada para os aplicativos móveis notificarem e registrarem-se a cada instalação, você poderá continuar a usar essa configuração. Seu servidor age como um proxy e passa o token do dispositivo para notificações por push para dispositivos móveis do Amazon SNS, juntamente com os dados do usuário que você gostaria de armazenar. Para esse fim, o servidor de proxy se conectará ao Amazon SNS usando suas credenciais da AWS e usará a chamada de API
CreatePlatformEndpoint
para carregar as informações do token. O Amazon Resource Name (ARN – Nome de recurso Amazon) do endpoint recém-criado será retornado e poderá ser armazenado por seu servidor para fazer chamadas subsequentes para publicar no Amazon SNS.