AWS PinpointでAndroidにプッシュ通知を送信する方法

AWS PinpointでAndroidにプッシュ通知を送信する方法

AWSのPinpointを使えばiPhoneやAndroidにプッシュ通知を送信することが可能です。

今回はAndroidの実機とAWS CLIで確認します。

Pinpointプロジェクト作成

Pinpointでプロジェクトを作成します。

「Settings」-「Push notifications」を選択します。

今回はAndroid端末で試しますので、FCMのAPI Keyを設定します。(FCMでいうサーバーキーです)

PinpointでiPhone,Androidにプッシュ通知を送信する方法

「Save」します。FCMがEnabledになっていることを確認します。

PinpointでiPhone,Androidにプッシュ通知を送信する方法

エンドポイント登録

まずエンドポイントを登録します。このエンドポイントに対してプッシュ通知を行います。

以下のようなobj.jsonを作成します。

obj.json

{}

プロジェクトIDはAWS Pinpointでプロジェクトを作成すると発行されるIDです。

エンドポイント名は必須、かつ、複数指定が可能です。こ のエンドポイント名に対してプッシュ通知をすることができます。

デバイストークンはAndroid実機でデバッグして取得してください。ChannelTypeは以下の通りです。

項目 端末
GCM Android
APNS_SANDBOX iPhone
APNS_VOIP_SANDBOX iPhone
APNS iPhone
APNS_VOIP iPhone

ファイルを作成したら、以下のコマンドを実行します。現時点で東京リージョンはサポートされていませんのでオレゴンで実行します。

aws pinpoint update-endpoint --region us-west-2 --cli-input-json file://obj.json --profile default

エンドポイントが登録出来たら以下のようなメッセージが返ってきます。

{
  "MessageBody": {
    "Message": "Accepted",
    "RequestID": "b1112cd4-1978-3xdb-acb3-2091ff297b2e"
  }
}

このエンドポイントに対してメッセージ送信してみます。その前にcliコマンドで作成されているかを確認します。

aws pinpoint get-endpoint --region us-west-2 --application-id "プロジェクトID" --endpoint-id "エンドポイント名"

以下はGCMMessageとあるようにAndroidのエンドポイント用のメッセージです。

msj.json

{
  "ApplicationId": "プロジェクトID",
  "MessageRequest": {
    "Endpoints": {
      "エンドポイント名": {}
    },
    "MessageConfiguration": {
      "GCMMessage": {
        "Action": "OPEN_APP",
        "RawContent":"{\"notification\":{\"title\":\"おはよう\",\"body\":\"こんにちは\"}}"
      }
    }
  }
}

jsonファイルを作成したら以下コマンドを実行します。

aws pinpoint send-messages --region us-west-2 --cli-input-json file://msg.json

プッシュ通知出来たら以下のようなメッセージが返ってきます。

{
  "MessageResponse": {
    "ApplicationId": "ac800s5612d86q96nng99666e616c86q",
    "EndpointResult": {
      "testpoint1": {
        "Address": "dHDYwc-dVJk:POO54nEASlkIhRRRlm_qqa3nSc3wXhghtGhpwF0ag_YY6LV9YZ6zEX-qI2kbujsz3fAqnY9bdMShQioBwFH_Akney_GjjUmP8OE1BmnAIKkFGjieaeYHTGbDSZtkeows9gI4hRRTjhrh",
        "DeliveryStatus": "SUCCESSFUL",
        "StatusCode": 200,
        "StatusMessage": "{\"multicast_id\":8449936429673918091,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1465789987164742%36574f1235597f64\"}]}"
      }
    },
    "RequestId": "78f24dc3-4444-4a8f-a444-4b343d7e5ae4"
  }
}

Android実機は以下のようにプッシュ通知されていることが確認できます。

AWS PinpointでAndroidにプッシュ通知を送信する方法

AWS Lambda(node.js)で試したい場合は以下ページが参考になります。

Class: AWS.Pinpoint — AWS SDK for JavaScript

エンドポイントを削除する

エンドポイントを作成すると、ずっと残ったままになってしまうのでCLIで削除します。

aws pinpoint delete-endpoint \
--application-id "アプリケーションID" \
--endpoint-id "エンドポイントID" \
--region us-west-2 \
--profile default

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました