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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント