Amazon Simple Notification Service
開発者ガイド (API バージョン 2010-03-31)

Amazon Device Messaging の使用開始

Amazon Device Messaging (ADM) は、Kindle Fire アプリにプッシュ通知メッセージを送信できるようにするサービスです。このセクションでは、ADM の前提条件を取得し、Amazon SNS および ADM を使用してプッシュ通知メッセージを送信する方法について説明します。

ADM の前提条件

Amazon SNS および ADM を使用して Kindle Fire アプリにプッシュ通知を送信するには、以下が必要です。

  • ADM サービスを有効にした Kindle Fire アプリ

  • クライアント ID とクライアントシークレット

  • API キー

  • 登録 ID

すでにこれらの前提条件を満たしている場合は、Amazon SNS コンソールまたは Amazon SNS API を使用して Kindle Fire アプリにプッシュ通知メッセージを送信できます。Amazon SNS コンソールの使用方法の詳細については、「Amazon SNS モバイルプッシュの使用」を参照してください。Amazon SNS API の使用方法の詳細については、「ステップ 5: Amazon SNS および ADM を使用してプッシュ通知メッセージを Kindle Fire に送信する」を参照してください。

ステップ 1: ADM サービスを有効にして Kindle Fire アプリを作成する

Kindle Fire アプリにプッシュ通知メッセージを送信するには、Amazon 開発者アカウントを持っていて、開発環境をセットアップし、ADM を有効にして Kindle Fire アプリを作成し、アプリを ADMに登録している必要があります。詳細については、「アプリを ADM と統合する」を参照してください。

Kindle Fire アプリを作成するには

  1. アカウントの作成の次の手順に従って Amazon 開発者アカウントを作成します。

  2. Kindle Fire タブレット用のモバイルアプリを開発するための開発環境をセットアップします。詳細については、「開発環境のセットアップ」を参照してください。

  3. Kindle Fire アプリを作成します。詳細については、「初めての Kindle Fire アプリの作成」を参照してください。

    注記

    すでに Kindle Fire アプリを ADM に登録していない場合は、手始めに AWS に用意されているサンプル Kindle Fire アプリをテンプレートとして使用することもできます。詳細については、「ステップ 4: 登録 ID を取得する」を参照してください。

  4. Amazon App Distribution Portal で、[Apps and Services] をクリックし、Kindle Fire アプリの名前をクリックしてから、[Device Messaging] をクリックします。

  5. アプリで ADM が有効になっていることを確認します。アプリが Amazon App Distribution Portal に表示されていない場合は、アプリを追加し、ADM を有効にします。

ステップ 2: クライアント ID およびクライアントシークレットを取得する

ADM はクライアント ID およびクライアントシークレットを使ってサーバーの識別情報を検証します。詳細については、「ADM 認証情報の取得」を参照してください。

クライアント ID およびシークレットキーを取得するには

  1. Amazon App Distribution Portal で、[Apps and Services] をクリックし、Kindle Fire アプリの名前をクリックしてから、[Security Profile] をクリックします。アプリに関連付けられたセキュリティプロファイルが表示されます。表示されない場合は、[Security Profiles] をクリックして新しいセキュリティプロファイルを作成します。

  2. [View Security Profile] をクリックします。クライアント ID およびクライアントシークレットを書き留めます。

ステップ 3: API キーを取得する

ADM は API キーを使ってアプリの識別情報を検証します。

注記

[API key] は、ADM をプレリリースで使用するか、アプリをテストするために必要です。ただし、自分の代わりに Amazon にアプリへの署名を許可する場合、アプリのリリースバージョンまたは本稼働バージョンには必要ありません。

API キーを取得するには

ステップ 4: 登録 ID を取得する

以下の手順は、AWS に用意されているサンプルの Kindle Fire アプリを使って ADM から登録 ID を取得する方法を示しています。このサンプルの Kindle Fire アプリを例として使用して、Amazon SNS プッシュ通知の使用を開始できます。サンプルアプリでは、開発環境に ADM ファイル amazon-device-messaging-1.0.1.jar.jar を含めている必要があります。詳細については、「ADM のセットアップ」を参照してください。

ADM からのアプリの登録 ID の取得

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

  2. IDE に KindleMobilePushApp フォルダーをインポートします。Eclipse で、[File] をクリックし、[Import] をクリックして、[Android] フォルダーを展開します。次に、[Existing Android Code Into Workspace] をクリックし、[Next] をクリックして、KindleMobilePushApp フォルダーを参照し、[OK] をクリックしてから、[Finish] をクリックします。

    サンプルの Kindle Fire アプリが IDE にインポートされたら、Kindle Fire アプリの API キーを strings.xml に追加する必要があります。このファイルはサンプルの Kindle Fire アプリに含まれています。

  3. strings.xml ファイルに API キーを追加します。IDE で、ファイルは [res] のサブフォルダーである [values] フォルダーに含まれています。以下に文字列を追加します。

    <string name="api_key"></string>
  4. アプリを実行して、Android ログ記録システムに出力された登録 ID を確認します。Android ADT プラグインと共に Eclipse を使用している場合、[LogCat] 表示ウィンドウに登録 ID が表示されます。たとえば、登録 ID を含む出力は次のようになります。

    amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw

これで、モバイルエンドポイントにプッシュ通知メッセージを送信するために必要な情報 (クライアント ID、クライアントシークレット、API キー、および登録 ID) を ADM から取得しました。また、Amazon SNS コンソールや Amazon SNS API を使用して、デバイスの Kindle Fire アプリにプッシュ通知メッセージを送信できるようになりました。Amazon SNS コンソールを使用するには、「Amazon SNS モバイルプッシュの使用」を参照してください。Amazon SNS API を使用するには、「ステップ 5: Amazon SNS および ADM を使用してプッシュ通知メッセージを Kindle Fire に送信する」を参照してください。

ステップ 5: Amazon SNS および ADM を使用してプッシュ通知メッセージを Kindle Fire に送信する

このセクションでは、Amazon SNS と ADM を使用して Kindle Fire アプリにプッシュ通知メッセージを送信するための前提条件情報の使用方法について説明します。AWS のサンプルファイル SNSMobilePush.java に、収集された前提条件情報を追加します。サンプルファイルは snsmobilepush.zip ファイルに含まれています。

注記

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

サンプルを Eclipse に追加するには

  1. Eclipse で新しい Java プロジェクトを作成します ([File] | [New] | [Java Project])。

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

  3. SNSSamples\src\com\amazonaws\sns\samples\mobilepush フォルダーで、AwsCredentials.properties ファイルを開き、AWS の認証情報を追加します。

ビルドパスに AWS SDK for Java を追加するには

  1. Java Project フォルダーを右クリックし、[Build Path] をクリックしてから、[Configure Build Path...] をクリックします。

  2. [Libraries] タブをクリックし、[Add Library...] をクリックします。

  3. [AWS SDK for Java] をクリックし、[Next] をクリックしてから、[Finish] をクリックします。

前提条件情報を SNSMobilePush.java に追加するには

  1. SNSSamples\src\com\amazonaws\sns\samples\mobilepush フォルダーの SNSMobilePush.java を Eclipse で開きます。

  2. sample.demoKindleAppNotification(); のコメントを解除します。これは次のように表示されます。

    SNSMobilePush sample = new SNSMobilePush(sns); // TODO: Uncomment the services you wish to use. // sample.demoAndroidAppNotification(); sample.demoKindleAppNotification(); // sample.demoAppleAppNotification(); // sample.demoAppleSandboxAppNotification(); // sample.demoBaiduAppNotification(); // sample.demoWNSAppNotification(); // sample.demoMPNSAppNotification();
  3. demoKindleAppNotification メソッドを探し、登録 ID 文字列の値として、ADM から受信した登録 ID を入力します。たとえば、次のようになります。

    String registrationId = = "amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw";
  4. アプリのクライアント ID を入力します。たとえば、次のようになります。

    String clientId = "amzn1.application-oa2-client.EXAMPLE7423654b79fc9f062fEXAMPLE";
  5. アプリのクライアントシークレットを入力します。たとえば、次のようになります。

    String clientSecret = "EXAMPLE01658e75ceb7bf9f71939647b1aa105c1c8eaccabaf7d41f68EXAMPLE";
  6. アプリの名前を入力します。アプリ名は大文字および小文字の ASCII 文字、数字、アンダースコア、ハイフン、およびピリオドのみで構成され、1~256 文字の長さである必要があります。たとえば、次のようになります。

    String applicationName = "admpushapp";
  7. Java アプリケーションを実行します。IDE の出力ウィンドウに次のような出力が表示されます。

    =========================================== Getting Started with Amazon SNS =========================================== {PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/ADM/mypushappname} {EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/ADM/mypushappname/97e9ced9-f136-3893-9d60-775467eafebb} {"ADM": "{ \"data\": { \"message\": \"ENTER YOUR MESSAGE\" } }"} Published. MessageId=b35fb4bz-b503-4e37-83d4-feu4218d6da6

    Kindle Fire デバイスで、プッシュ通知メッセージが Kindle Fire アプリ内に表示されます。