概要
モバイルプッシュ通知を送るのに、そのプッシュサービスを提供しているプラットフォームのAPIを直接に使うのが一番シンプルです。しかし、マルチプラットフォーム、たとえば、AndroidとiOSの同時対応の場合、実装の手間が倍になります。このような問題を解消するために、マルチプラットフォームに対応するプッシュサービスが現れてきました。Amazon SNSはその一つであり、AWSとの相性も抜群です。
Amazon SNSを利用してモバイルプッシュ通知を送信するやり方
前準備
(1) [Amazon SNS] -> [プッシュ通知]に入ります。
(2) [プラットフォームアプリケーションの作成]をクリックします。
(3) [アプリケーション名]を入れ、[プッシュ通知プラットフォーム]で対象プラットフォームのを選び、右下の[プラットフォームアプリケーションの作成]ボタンをクリックします。
たとえば、もし[Firebase Cloud Messaging (FCM)]を選んだ場合、[APIキー]にFirebaseのサーバーキーを設定します。
(4) 作成したプラットフォームアプリケーションに入り、[アプリケーションエンドポイントの作成]をクリックします。
(5) ここに、送信先のモバイルデバイスのトークンを登録します。
(6) [Amazon SNS] -> [トピック]に入ります。
(7) [トピック作成]をクリックします。
(8) [スタンダード]を選び、[名前]にトピック名を入れてから、右下の[トピック作成]ボタンをクリックします。
(9) 作成したトピックの中で、[サブスクリプションの作成]をクリックします。
(10) [プロトコル]ではプラットフォームアプリケーションのエンドポイントを選び、[エンドポイント]にアプリケーションエンドポイントのARNを入れます。
これで準備が完了です。
コンソールでプッシュメッセージを送信
(1) トピックを選び、[メッセージの発行]ボタンをクリックします。
(2) [メッセージ構造]を選び、[エンドポイントに送信するメッセージ本文]にデータを設定します。最後に右下の[メッセージの発行]ボタンをクリックすれば、モバイルプッシュ通知が発行されます。
通知メッセージ
[メッセージ構造]で配信プロトコルごとにカスタムペイロードを選びます。また、本文にdefaultを忘れずに入れておきます。
ペイロードの例:
{
"default": "サンプルフォールバックメッセージ",
"GCM": "{ \"notification\": { \"body\": \"AWSは楽しいです!\", \"title\":\"AWSをどう思いますか?\" } }"
}
データ メッセージ
データメッセージの場合、[メッセージ構造]でどれを選んでもかまいません。defaultも入れておきます。
ペイロードの例:
{
"default": "サンプルフォールバックメッセージ",
"GCM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}"
}
参考
Amazon SNSを利用してモバイルプッシュ通知を送信するやり方ーコンソール利用
Amazon SNSを利用してモバイルプッシュ通知を送信するやり方ー Node.js
Amazon SNSを利用してモバイルプッシュ通知を送信するやり方ー HMS対応(ソリューション)
Amazon SNSを利用してモバイルプッシュ通知を送信するやり方ー HMS対応(実装)