Como faço para criar uma aplicação de plataforma do APNs para enviar notificações por push no Amazon SNS usando a AWS CLI?

Data da última atualização: 21-02-2022

Quero criar uma aplicação de plataforma do Apple Push Notification Service (APNs) no Amazon Simple Notification Service (Amazon SNS) para enviar notificações por push. Como faço para criar uma aplicação de plataforma do APNs usando a AWS Command Line Interface (AWS CLI) em vez do console do Amazon SNS?

Breve descrição

Para criar uma aplicação de plataforma do APNs no Amazon SNS usando a AWS CLI, execute o comando create-platform-application.

Para obter mais informações, consulte CreatePlatformApplication na Referência da API do Amazon SNS.

Observação: também é possível criar uma aplicação de plataforma no console do Amazon SNS.

Resolução

Observação: as notificações por push do Amazon SNS não estão disponíveis em todas as Regiões da AWS. Para obter mais informações, consulte as Regiões suportadas de aplicações para dispositivos móveis. Se receber erros ao executar comandos da AWS CLI, certifique-se de estar usando a versão mais recente da AWS CLI.

Pré-requisitos

Você deve ter uma aplicação válida para iOS, VoIP ou MacOS. Você também deve ter os seguintes recursos da sua conta de desenvolvedor da Apple, com base no método de autenticação da aplicação:

Para autenticação baseada em certificado

  • Um certificado TLS válido

Para autenticação baseada em token

  • Uma chave de assinatura de token válida
  • Uma ID Apple Team válida
  • Uma ID Apple Bundle válida

Para obter mais informações, consultePré-requisitos notificação do usuário do Amazon SNS e Métodos de autenticação da Apple, no Guia do desenvolvedor do Amazon SNS.

Para criar uma aplicação de plataforma do APNs no Amazon SNS usando a AWS CLI

Para autenticação baseada em certificado

1.    Execute o comando a seguir:

Importante: substitua Your_Application_Name pelo nome da sua aplicação. Substitua Certificates.p12 pelo arquivo PKCS #12. Substitua o valor da plataforma por APNS_SANDBOX ou APNS, com base no caso de uso. Certifique-se de executar o comando no mesmo diretório em que está localizado o arquivo PKCS #12.

aws sns create-platform-application --name Your_Application_Name --platform APNS_SANDBOX --attributes PlatformCredential="\"$(openssl pkcs12 -in Certificates.p12 -nodes -nocerts)\"",PlatformPrincipal="\"$(openssl pkcs12 -in Certificates.p12 -nodes -nokeys)\""

Observação: para serviços da Apple que usam credenciais de certificado, PlatformCredential é uma chave privada. PlatformPrinciple é o certificado SSL. O comando OpenSSL pkcs12 analisa um arquivo PKCS #12 em um formato legível para autenticação baseada em certificado. Para obter mais informações, consulte pkcs12 no site do OpenSSL.

É exibido um prompt para inserir um valor de senha de importação.

2.    Para a senha de importação, insira a senha que foi criada ao exportar o arquivo PKCS #12 da aplicação Keychain Access.

Para autenticação baseada em token

Execute o comando a seguir:

Importante: substitua PlatformCredential pela chave de assinatura de token. Substitua PlatformPrinciple pela chave de assinatura de token. Substitua ApplePlatformTeamID pela ID Apple Team. Substitua ApplePlatformBundleID pela ID Apple Bundle. Substitua o valor da plataforma por APNS_SANDBOX ou APNS, com base no caso de uso. Substitua Token.p8 pelo arquivo PKCS #8. Certifique-se de executar o comando no mesmo diretório em que está localizado o arquivo PKCS #8.

aws sns create-platform-application --name token --platform APNS_SANDBOX --attributes ApplePlatformTeamID=XXXXXXX,ApplePlatformBundleID=com.XXXXX,PlatformPrincipal=XXXXXXX,PlatformCredential="\"$(openssl pkcs8 -in Token.p8 -nocrypt)\""

Observação: para serviços da Apple que usam credenciais de token, PlatformCredential é uma chave de assinatura de token. PlatformPrinciple é o ID da chave de assinatura do token. O comando OpenSSL pkcs8 processa chaves privadas no formato PKCS #8 e as analisa em um formato legível para autenticação baseada em token. Para obter mais informações, consulte pkcs8 no site do OpenSSL.

Para obter mais informações sobre atributos de plataforma, consulte SeePlatformApplicationAttributes na Referência da API do Amazon SNS.