AWS PinpointでAndroidにプッシュ通知を送信する方法
AWSのPinpointを使えばiPhoneやAndroidにプッシュ通知を送信することが可能です。
今回はAndroidの実機とAWS CLIで確認します。
Pinpointプロジェクト作成
Pinpointでプロジェクトを作成します。
「Settings」-「Push notifications」を選択します。
今回はAndroid端末で試しますので、FCMのAPI Keyを設定します。(FCMでいうサーバーキーです)
「Save」します。FCMがEnabledになっていることを確認します。
エンドポイント登録
まずエンドポイントを登録します。このエンドポイントに対してプッシュ通知を行います。
以下のような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 Lambda(node.js)で試したい場合は以下ページが参考になります。
エンドポイントを削除する
エンドポイントを作成すると、ずっと残ったままになってしまうのでCLIで削除します。
aws pinpoint delete-endpoint \ --application-id "アプリケーションID" \ --endpoint-id "エンドポイントID" \ --region us-west-2 \ --profile default

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^





コメント