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

{
"ApplicationId": "プロジェクトID", // PinpointのプロジェクトID
"EndpointId": "エンドポイント名(任意)", // とりあえず適当に設定
"EndpointRequest": {
"Address": "デバイストークン", // Androidのデバイストークン
"ChannelType": "GCM", // GCMはアンドロイド
"EndpointStatus": "ACTIVE"
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

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

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

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

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

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

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

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

view raw
gistfile1.txt
hosted with ❤ by GitHub

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

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

msj.json

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

view raw
gistfile1.txt
hosted with ❤ by GitHub

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"
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

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

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

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

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Pinpoint.html

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

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

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA