FCM(Firebase Cloud Messaging) を利用している iOS アプリは普通 FCM から通知を行いますが、Amazon SNS の GCM プラットフォームアプリケーションを FCM の Server Key を登録して作成し、その GCM プラットフォームアプリケーションに FCM の Remote Instance ID token をエンドポイントとして登録し、SNS から FCM を経由して iOS にプッシュ通知を送信するという芸当が可能です。
何を言っているのか意味不明だと思うので図説すると次のような構造です(図にすると単純)
Amazon SNS(GCM Platform Application) -> FCM -> iOS
FCM プロジェクトの作成と iOS アプリ側の実装を進めます
FCM の公式ドキュメント: iOS に Firebase Cloud Messaging クライアント アプリを設定する を眺めながら FCM プロジェクトの作成
SNS の GCM プラットフォームアプリケーションを作成する
アプリケーションの作成で GCM を選択しつつ FCM の Server Key を認証情報として使う
エンドポイントの登録
iOS アプリをデバイスにインストールし、Remote Instance ID token をぶっこぬき、GCM プラットフォームアプリケーションのエンドポイントとして登録する
プッシュ通知の送信
以下のような内容のペイロードを対象エンドポイントに送信すると通知が飛ぶ(デバイスのプッシュ通知を許可しておく必要がある)
{
"GCM": "{\"notification\":{\"body\":\"Hello, World!\"}}"
}
Pinpoint から FCM 経由で APNs エンドポイントへ配信する場合は下記のようなペイロードを使う
{
"GCMMessage": {
"notification": {
"body": "Hello, World!"
}
}
}
Pinned Articles
About
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです
Tags
JavaScript
PowerShell
kibana
elasticsearch
fluentd
nginx
イベント
五十嵐裕美
村川梨衣
logrotate
IoT
Scala
Java
C言語
iputils
ICMP
WUG
mastodon
Swift
AWS
Clock
Windows
アーキテクチャ
PoEAA
iOS
DeviceFarm
プログラミング言語
OS
StepFunctions
Lambda
Serverless
terraform
ポエム
RHEL
ネットワーク
GraphQL
CloudWatch
Linux
Coreutils
network
nc
telnet
LinuxKernel
fpinscala
ELB
IAM
AppSync
EFS
Gradle
english