-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_PushNotification
SaaS開発で調べたプッシュ通知についてのメモ。
-
プッシュは、
特定のアカウントに対して行われるが、
インフラストラクチャとしては、-
Apple(or Google)の通知用サーバに、
-
スマホネイティブ・アプリケーションを登録する
形になる。
-
-
プッシュ通知までの流れ。
-
スマホネイティブ・アプリケーションの登録後に、
-
アプリケーションを実機にインストールすると、
端末+アプリを識別するデバイス・トークンが発行される -
それを使用してサーバから通知を行う。
- AuthZ(AuthN) Server
- Resource Server
-
-
なお、個人に送信するだけではなく、
もデバイス・トークンを使用して行う。
-
AndroidとiOSでは、プッシュ通知に、前述の異なるが類似の仕組みが採用されている。
-
なお、プッシュ通知の動作確認をする為にエミュレータは使用できない(実機へのインストールが必要)。
-
mBaaSでは、AndroidとiOSの差異をラップして隠蔽し、
AndroidからもiOSからも利用できるプラグインを用意しているケースが多い。
- デバイスにアプリケーションをインストールする際、
FCM / APNs / JPushサーバにデバイス登録を行う。 - 登録結果としてデバイス・トークンを受け取る。
- デバイス・トークンをバックエンドサーバに送って保存する。
※ 1, 2 の処理は、プラグインに
「デバイス・トークンを バックエンドサーバに送るデリゲート」
を渡せば短いコードで完了してしまう。
※ 登録の際、ユーザIDと紐付けて保存するため認証が必要。
ネイティブ・アプリの認証であればPKCEが一般的。
- 任意の箇所でアプリケーションのイベントを検出する。
- バックエンドサーバは、
「サービスアカウント情報」と「デバイス・トークン」を使用して、
FCM / APNs / JPushサーバにプッシュ要求を送信する。 - FCM / APNs / JPushサーバは、デバイスにプッシュ通知を送信する。
トピック購読は、ユーザ自身が行う (NativeからFCM / APNs / JPushサーバに直アクセス)。
個人に送信と異なる点は、
FCM / APNs / JPushサーバにプッシュ要求を送信する際に、
「サービスアカウント情報」と「トピック名」を使用する点。
グループ作成とユーザ登録は、バックエンドの管理者やアプリケーションで行う。
個人に送信と異なる点は、
「通知キー」を受け取る点。
個人に送信と異なる点は、
FCM / APNs / JPushサーバにプッシュ要求を送信する際に、
「サービスアカウント情報」と「通知キー」を使用する点。
- Firebaseコンソールなどポータルから送信可能。
- バックエンドサーバ経由で行う場合、
事前に「全体に送信」トピックを登録しておく。
-
Kii Cloud のプッシュ通知の概要
https://docs.kii.com/ja/guides/cloudsdk/rest/managing-push-notification/push-overview/- Kii Cloud でのプッシュ通知機能
https://docs.kii.com/ja/guides/cloudsdk/rest/managing-push-notification/push-overview/push-kiicloud/ - プッシュ通知の仕組み
https://docs.kii.com/ja/guides/cloudsdk/rest/managing-push-notification/push-overview/structure/ - プラットフォーム間でのプッシュ通知
https://docs.kii.com/ja/guides/cloudsdk/rest/managing-push-notification/push-overview/inter-platform/
- Kii Cloud でのプッシュ通知機能
- JPushで中国国内のAndroid端末にプッシュ通知するための初期調査 - Qiita
https://qiita.com/grachro/items/77036fc7b1672a4f77d2
-
iOS
- プッシュ通知 (iOS) : 基本的な使い方
https://mbaas.nifcloud.com/doc/current/push/basic_usage_ios.html - チュートリアル (iOS) : 位置情報に連動したプッシュ通知を送る
https://mbaas.nifcloud.com/doc/current/tutorial/geolocation-notification.html#/iOS
- プッシュ通知 (iOS) : 基本的な使い方
-
Android
- プッシュ通知 (Android) : 基本的な使い方
http://mb.cloud.nifty.com/doc/current/push/basic_usage_android.html - チュートリアル (Android) : 位置情報に連動したプッシュ通知を送る
https://mbaas.nifcloud.com/doc/current/tutorial/geolocation-notification.html#/Android
- プッシュ通知 (Android) : 基本的な使い方
最もポピュラーなmBaaS
-
Firebase Cloud Messaging
https://firebase.google.com/docs/cloud-messaging/?hl=ja -
Firebase Cloud Messaging | プラットフォーム間で通知を無料送信
https://firebase.google.com/products/cloud-messaging/?hl=ja -
第9回 Firebase Cloud MessagingとFirebase Notificationsでメッセージを送信する:
スマホアプリ開発を加速する,Firebaseを使ってみよう|gihyo.jp … 技術評論社
https://gihyo.jp/dev/serial/01/firebase/0009 -
Firebaseを使うと簡単にユーザ属性毎のプッシュ通知が送れて
既読管理やコンバージョンも簡単に把握することが出来るよ!
しかも無料で!すごく魅力的だけどめっちゃハマった話
https://qiita.com/chanibarin/items/48d5f5946b1e6c97e379
移行メモ
- 「(Nativeからに〜サーバに直アクセス)」の「に」は衍字のため除去した。
- 「グループを作成依頼を〜サーバに送信して、」→「グループの作成依頼を」に修正した。
- 同名の見出し(「初期化」「通知の送信」)が送信方法ごとに重複し GitHub Wiki でアンカが衝突するため、括弧で文脈を補って一意にした。
- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの PKCE に張り替えた。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。
Tags: 移行, プッシュ通知, FCM, APNs, JPush, mBaaS, Firebase, スマホ, モバイル
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。