Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法―サーバー(Amazon SNS:プッシュ通知を配信)
LambdaとAPI Gatewayで配信用のAPIを作成します。
Lambdaでは、aws-sdkライブラリを使って、プッシュ配信内容をAmazon SNSのトピックに送ります。
Lambdaのサンプル
index.js
// AWS SDKをロードする
const AWS = require('aws-sdk');
// リージョンを設定する
AWS.config.update({region: 'ap-northeast-1'});
// SNSサービスのオブジェクトを生成
const sns = new AWS.SNS();
exports.handler = function (event, context, callback) {
// プッシュのパラメータを設定する
const params = {
// プッシュ内容
Message: JSON.stringify({
default: event.default, // デフォルトデータ
GCM: event.GCM, // FCMデータ
APNS: event.APNS // APNSデータ
}),
// 配信プロトコルごとにカスタムペイロードに設定する
MessageStructure: "json",
// 対象トピック
TopicArn: 'Amazon SNSのトピックのARN'
};
// Amazon SNSにアクセスするためのPromiseを作成する
const promise = new Promise((resolve, reject) => {
sns.publish(params, (error, data) => {
if (error) {
reject(error);
return;
}
resolve(data);
});
});
promise.then((result) => {
// レスポンスを返す
callback(null, result);
}).catch((error) => {
callback(null, { error : error });
});
}
GitHub
参考
Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法
1―概要
2―クライアント(Android-GMS)
3―クライアント(Android-HMS)
4―クライアント(iOS-APNS)
5―サーバー(Amazon SNS:プッシュトークンの保存)
6―サーバー(Amazon SNS:プッシュトークンの管理:HMS)
7―サーバー(Amazon SNS:プッシュトークンの保存:HMS)
8―サーバー(Amazon SNS:プッシュ通知を配信)
9―サーバー(Amazon SNS:プッシュ通知を配信:HMS)
10―サーバー(Amazon SNS:プッシュ通知を配信:複数のデバイスに同時配信)