Amazon Simple Notification Service (Amazon SNS) を使用して、プッシュ通知を送信する Apple Push Notification Service (APN) プラットフォームアプリケーションを作成したいと考えています。Amazon SNS コンソールの代わりに AWS Command Line Interface (AWS CLI) を使用して APN プラットフォームアプリケーションを作成するにはどうすればよいですか?
簡単な説明
AWS CLI を使用して Amazon SNS で APN プラットフォームアプリケーションを作成するには、create-platform-application コマンドを実行します。
詳細については、Amazon SNS API リファレンスの「CreatePlatformApplication」を参照してください。
注: Amazon SNS コンソールでプラットフォームアプリケーションを作成することもできます。
解決方法
注: Amazon SNS のプッシュ通知は、一部の AWS リージョンではご利用いただけません。詳細については、「モバイルアプリケーションでサポートされているリージョン」を参照してください。AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
前提条件
iOS、VoIP、または MacOS 用の有効なアプリケーションが必要です。また、アプリケーションの認証方法に基づいて、Apple Developer アカウントから次のリソースを取得する必要があります。
証明書ベースの認証の場合
トークンベース認証の場合
- 有効なトークン署名キー
- 有効な Apple チーム ID
- 有効な Apple バンドル ID
詳細については、「Amazon SNS デベロッパーガイド」の「Amazon SNS ユーザー通知の前提条件」と「Apple 認証方法」を参照してください。
AWS CLI を使用して Amazon SNS で APN プラットフォームアプリケーションを作成するには
証明書ベースの認証の場合
1. 次のコマンドを実行してください。
重要: Your_Application_Name をアプリケーションの名前に置き換えてください。Certificates.p12 を PKCS#12 ファイルに置き換えてください。ユースケースに基づいて、platform 値を APNS_SANDBOX または APNS に置き換えてください。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)\""
注: 証明書の認証情報を使用する Apple サービスの場合、PlatformCredential はプライベートキーです。PlatformPrincipal は SSL 証明書です。OpenSSL pkcs12 コマンドは、PKCS#12 ファイルを証明書ベースの認証用の読み取り可能な形式に解析します。詳細については、OpenSSL ウェブサイトの「pkcs12」を参照してください。
インポートパスワード値を入力するよう求めるプロンプトが表示されます。
2. [import password] (パスワードのインポート) で、Keychain Access アプリケーションから PKCS#12 ファイルをエクスポートしたときに作成したパスワードを入力します。
トークンベース認証の場合
次のコマンドを実行してください。
重要: PlatformCredential をトークン署名キーに置き換えてください。PlatformPrincipal をトークン署名キー ID に置き換えてください。ApplePlatformTeamID を Apple チーム ID に置き換えてください。ApplePlatformBundleID を Apple バンドル ID に置き換えてください。ユースケースに基づいて、platform 値を APNS_SANDBOX または APNS に置き換えてください。Token.p8 を PKCS#8 ファイルに置き換えてください。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)\""
注: トークン認証情報を使用する Apple サービスの場合、PlatformCredential はトークン署名キーです。PlatformPrincipal はトークン署名キー ID です。OpenSSL pkcs8 コマンドは、プライベートキーを PKCS#8 形式で処理し、トークンベースの認証用に読み取り可能な形式に解析します。詳細については、OpenSSL ウェブサイトの「pkcs8」を参照してください。
プラットフォーム属性の詳細については、「Amazon SNS API リファレンス」の「SeePlatformApplicationAttributes」を参照してください。
関連情報
モバイルプッシュ API エラー
モバイルアプリのセットアップ
モバイルプッシュ API アクション