デバイストークンまたは登録 ID を追加する - Amazon Simple Notification Service

デバイストークンまたは登録 ID を追加する

Apple Push Notification Service (APNs) や Firebase Cloud Messaging (FCM) などの通知サービスに初めてアプリやモバイルデバイスを登録すると、通知サービスからデバイストークンまたは登録 ID が通知サービスから返されます。デバイストークンまたは登録 ID を Amazon SNS に追加すると、それらは PlatformApplicationArn API とともに、アプリケーションやデバイスのエンドポイントを作成するために使用されます。Amazon SNS がエンドポイントを作成するときに、EndpointArn が返されます。EndpointArn は、通知メッセージの送信先のアプリやモバイルデバイスを Amazon SNS が知るための方法です。

次の方法を使用して、デバイストークンと登録 ID を Amazon SNS に追加できます。

  • AWS を使用して手動で AWS Management Console に 1 つのトークンを追加する

  • AWS Management Console を使用して CSV ファイルから AWS に既存のトークンを移行する

  • CreatePlatformEndpoint API を使用して複数のトークンをアップロードする

  • 将来アプリケーションをインストールするデバイスからトークンを登録する

手動でデバイストークンまたは登録 ID を追加するには

  1. Amazon SNS コンソールにサインインします。

  2. [アプリケーション] を選択し、ご自分のアプリケーションを選択して、[エンドポイントの追加] を選択します。

  3. [エンドトークン] ボックスに、通知サービスに応じてトークン ID または登録 ID を入力します。例えば、ADM や FCM では、登録 ID を入力します。

  4. (オプション) [ユーザーデータ] ボックスに、エンドポイントに関連付ける任意の情報を入力します。Amazon SNS はこのデータは使用しません。データは UTF-8 形式で、2 KB 未満でなければなりません。

  5. 最後に、[エンドポイントの追加] を選択します。

    これでエンドポイントを作成したので、直接モバイルデバイスにメッセージを送信したり、トピックにサブスクリプションしているモバイルデバイスにメッセージを送信したりできます。

既存のトークンを CSV ファイルから AWS に移行するには

CSV ファイルに含まれている既存のトークンを移行できます。CSV ファイルは 2 MB 未満でなければなりません。複数のトークンを移行するときは、CreatePlatformEndpoint API を使用することをお勧めします。CSV ファイルの各トークンの後には改行が必要です。例えば、CSV ファイルは以下のようになります。

amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz01,"User data with spaces requires quotes" amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz04,"Data,with,commas,requires,quotes" amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz02,"Quoted data requires ""escaped"" quotes" amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz03,"{""key"": ""json is allowed"", ""value"":""endpoint"", ""number"": 1}" amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz05,SimpleDataNoQuotes amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz06,"The following line has no user data" amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz07 APBTKzPGlCyT6E6oOfpdwLpcRNxQp5vCPFiFeru9oZylc22HvZSwQTDgmmw9WdNlXMerUPxmpX0w1,"Different token style"
  1. Amazon SNS コンソールにサインインします。

  2. [アプリケーション] を選択し、ご自分のアプリケーションを選択して、[エンドポイントの追加] を選択します。

  3. [既存のトークンを AWS に移行]、[ファイルの選択] の順に選択し、CSV ファイルを選択してから、[エンドポイントの追加] を選択します。

CreatePlatformEndpoint API を使用して複数のトークンをアップロードするには

次の手順は、AWS に用意されているサンプルの Java アプリケーション (bulkupload パッケージ) を使用して複数のトークン (デバイストークンまたは登録 ID) を Amazon SNS にアップロードする方法を示しています。既存のトークンのアップロードを開始するには、このサンプルアプリを使用できます。

注記

以下の手順では、Eclipse Java IDE を使用します。これらの手順では、AWS SDK for Java をインストールし、AWS アカウント の AWS セキュリティ認証情報があることを前提としています。(=AWS SDK for Java) 詳細については、「」を参照してください。認証情報の取得方法の詳細については、『AWS General Reference』の「セキュリティ認証情報の取得方法」を参照してください。

  1. snsmobilepush.zip ファイルをダウンロードして解凍します。

  2. Eclipse で新しい Java プロジェクトを作成します。

  3. 新しく作成したされた Java プロジェクトの最上位ディレクトリに SNSSamples フォルダーをインポートします。Eclipse で、Java プロジェクトの名前を右クリックし、[Import] を選択して、[General] を展開します。次に、[File System]、[Next] の順に選択し、SNSSamples フォルダーを参照します。その後、[OK]、[Finish] の順に選択します。

  4. OpenCSV library のコピーをダウンロードし、bulkupload パッケージのビルドパスに追加します。

  5. bulkupload パッケージに含まれている BulkUpload.properties ファイルを開きます。

  6. 以下を BulkUpload.properties に追加します。

    • エンドポイントを追加する ApplicationArn

    • トークンを含む CSV ファイルの場所の絶対パス。

    • Amazon SNS が正しく解析するトークンと、解析に失敗するトークンのログ記録のために作成される CSV ファイルの名前 (goodTokens.csvbadTokens.csv など)。

    • (オプション) トークンを含む CSV ファイルで区切り記号と引用符を指定する文字。

    • (オプション) エンドポイントを同時に作成するために使用するスレッドの数。デフォルトは 1 スレッドです。

    完了した BulkUpload.properties は次のようになります。

    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
  7. BatchCreatePlatformEndpointSample.java アプリケーションを実行してトークンを Amazon SNS にアップロードします。

    この例では、正常に Amazon SNS にアップロードされたトークン用に作成されたエンドポイントは goodTokens.csv に記録され、正しい形式でないトークンは badTokens.csv に記録されます。さらに、次のような内容を含む STD OUT ログが Eclipse のコンソールに書き込まれます。

    <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

将来アプリをインストールするデバイスからトークンを登録するには

次の 2 つのオプションのうちの 1 つを使用できます。

  • Use the Amazon Cognito service: モバイルアプリケーションでは、Amazon SNS プラットフォームアプリケーションと関連付けられた認証情報を作成するために、認証情報が必要です。一定期間後に有効期限が切れる一時認証情報を使用することをお勧めします。ほとんどの場合、Amazon Cognito を使用して一時的なセキュリティ認証情報を作成することをお勧めします。詳細については、「Amazon Cognito デベロッパーガイド」をご覧ください。アプリケーションが Amazon SNS に登録したときに通知を受信する場合は、新しいエンドポイント ARN を提供する Amazon SNS イベントを受信するように登録できます。ListEndpointByPlatformApplication API を使用して、Amazon SNS に登録されたエンドポイントの詳細な一覧を取得することもできます。

  • [Use a proxy server]: 各インストールで呼び出し、登録するためにモバイルアプリケーション用にアプリケーションのインフラストラクチャがすでにセットアップされている場合は、引き続きこのセットアップを使用できます。サーバーはプロキシとして動作し、保存したいユーザーデータとともに、Amazon SNS モバイルプッシュ通知にデバイストークンを渡します。そのためには、プロキシサーバーは AWS の認証情報を使用して Amazon SNS に接続し、CreatePlatformEndpoint API コールを使用してトークン情報をアップロードします。新しく作成されたエンドポイント Amazon リソースネーム (ARN) が返され、サーバーは Amazon SNS にそれ以降に発行の呼び出しを行うためにこれを保存できます。