LoginSignup
0
0

More than 1 year has passed since last update.

Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法7―サーバー(Amazon SNS:プッシュトークンの保存:HMS)

Last updated at Posted at 2021-05-07

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:プッシュ通知を配信:複数のデバイスに同時配信)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0