Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法―サーバー(Amazon SNS:プッシュトークンの保存:HMS)
Amazon SNSではHMSのプッシュ通知を直接にサポートしていないので、プラットフォームアプリケーションの作成もサブスクリプションの作成もいりません。
(※後にプッシュ通知を配信するときにサブスクリプションの作成はいります)
AWS LambdaでDynamoDBにプッシュトークンを登録する方法
index.js
// AWS SDKをロードする
const AWS = require('aws-sdk');
// リージョンを設定する
AWS.config.update({region: 'ap-northeast-1'});
// DynamoDBサービスのオブジェクトを生成
const ddb = new AWS.DynamoDB();
exports.handler = async (event) => {
const response = {};
// 入力データを検証
if (!event) {
response.error = "No data";
return response;
}
// 入力データを検証(トークンがない)
if (!event.hasOwnProperty("token")) {
response.error = "No token";
return response;
}
// 入力データを検証(トークンがない)
if (!event.hasOwnProperty("token_type")) {
response.error = "No token type";
return response;
}
const token = event.token;
if (event.token_type == "HMS") {
const params = {
TableName: 'token_info',
Item: {
'token' : {S: token}
}
};
// DynamoDBへ書き込む
await ddb.putItem(params, function(err, data) {
if (err) {
response["error"] = err;
} else {
response["result"] = data;
}
}).promise();
} else {
response.error = "Invalid token type";
}
return response;
};
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:プッシュ通知を配信:複数のデバイスに同時配信)