LoginSignup
0
0

More than 1 year has passed since last update.

Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法8―サーバー(Amazon SNS:プッシュ通知を配信)

Last updated at Posted at 2021-05-07

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

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