Lambdaを使えばサーバーレスでプッシュ通知ができるのでホント便利です。備忘録がてら上手く行ったLambdaのコードを貼っておきます。予め、LambdaにSNSをPublishする権限を与えるのを忘れずに。
APNSの証明書を云々したりiOS側でエンドポイントを確立したりするのはこちらの記事が参考になりました。
→AWS SNSを使ってiOSへpush通知
上手く行ったコード
index.js
'use strict';
const AWS = require('aws-sdk');
const sns = new AWS.SNS();
exports.handler = (event, context, callback) => {
const params = {
TargetArn: endPointArn,//Amazon SNSによって確立されたプッシュ通知を送る端末のendPointArn
Message: JSON.stringify({
APNS:JSON.stringify({//開発環境では"APNS"ではなく"APNS_SANDBOX"
aps:{
alert: {
title: "プッシュ通知です",//プッシュ通知のタイトル
body: "これはプッシュ通知です!"//プッシュ通知の本文
},
sound: 'default'
}
})
}),
MessageStructure: 'json'
};
sns.publish(params, function(err,data){
if(err){
console.log('SNS 送信エラー:', err);
}else{
console.log('SNS 送信成功:', data);
}
});
}
たったこれだけです!超便利!