.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

SaaS開発で調べたプッシュ通知についてのメモ。

  • プッシュは、
    特定のアカウントに対して行われるが、
    インフラストラクチャとしては、
  • Apple(or Google)の通知用サーバに、
    • APNs
      Appleの通知用サーバ(iOSに通知を行う)
    • FCM
      Googleの通知用サーバ(Androidに通知を行う)
  • スマホネイティブ・アプリケーションを登録する

形になる。

  • プッシュ通知までの流れ。
    • スマホネイティブ・アプリケーションの登録後に、
  • アプリケーションを実機にインストールすると、
    端末+アプリを識別するデバイス・トークンが発行される
  • それを使用してサーバから通知を行う。
    • AuthZ(AuthN) Server
    • Resource Server

デバイス・トークンを使用して行う。

仕組み

  • AndroidとiOSでは、プッシュ通知に、前述の異なるが類似の仕組みが採用されている。
  • なお、プッシュ通知の動作確認をする為にエミュレータは使用できない(実機へのインストールが必要)。
  • mBaaSでは、AndroidとiOSの差異をラップして隠蔽し、
    AndroidからもiOSからも利用できるプラグインを用意しているケースが多い。

個人に送信

初期化

  1. ...。
  2. バックエンドサーバにFCM / APNs / JPushが発行した
    サービスアカウント情報(JSONファイル)を配置する。
  3. ...。

デバイス・トークンの保存

  1. デバイスにアプリケーションをインストールする際、
    FCM / APNs / JPushサーバにデバイス登録を行う。
  2. 登録結果としてデバイス・トークンを受け取る。
  3. デバイス・トークンをバックエンドサーバに送って保存する。

※ 1, 2 の処理は、プラグインに
 「デバイス・トークンを バックエンドサーバに送るデリゲート」
 を渡せば短いコードで完了してしまう。

※ 登録の際、ユーザIDと紐付けて保存するため認証が必要。
 ネイティブ・アプリの認証であればPKCEが一般的。

通知の送信

  1. 任意の箇所でアプリケーションのイベントを検出する。
  2. バックエンドサーバは、
    「サービスアカウント情報」と「デバイス・トークン」を使用して、
    FCM / APNs / JPushサーバにプッシュ要求を送信する。
  3. FCM / APNs / JPushサーバは、デバイスにプッシュ通知を送信する。

トピック購読者に送信

トピック購読は、ユーザ自身が行う (NativeからにFCM / APNs / JPushサーバに直アクセス)。

初期化

  • デバイス・トークンを使用して、自端末のトピック登録依頼をFCM / APNs / JPushサーバに送信する。
    • 個人に送信と異なり、送信時のデバイス・トークンは不要。
    • トピック登録時、FCM / APNs / JPushサーバにデバイス・トークンを渡して保存しているため。

通知の送信

個人に送信と異なる点は、
FCM / APNs / JPushサーバにプッシュ要求を送信する際に、
「サービスアカウント情報」と「トピック名」を使用する点。

特定グループに送信

グループ作成とユーザ登録は、バックエンドの管理者やアプリケーションで行う。

初期化

個人に送信と異なる点は、

グループを作成依頼をFCM / APNs / JPushサーバに送信して、

「通知キー」を受け取る点。

通知の送信

個人に送信と異なる点は、
FCM / APNs / JPushサーバにプッシュ要求を送信する際に、
「サービスアカウント情報」と「通知キー」を使用する点。

全体に送信

  • Firebaseコンソールなどポータルから送信可能。
  • バックエンドサーバ経由で行う場合、
    事前に「全体に送信」トピックを登録しておく。

参考

Android (FCM)

iOS (APNs)

JPush

mBaaS利用時

ニフクラ mobile backend

Firebase

最もポピュラーなmBaaS

  • 第9回 Firebase Cloud MessagingとFirebase Notificationsでメッセージを送信する:
    スマホアプリ開発を加速する,Firebaseを使ってみよう|gihyo.jp … 技術評論社
    https://gihyo.jp/dev/serial/01/firebase/0009
  • Firebaseを使うと簡単にユーザ属性毎のプッシュ通知が送れて
    既読管理やコンバージョンも簡単に把握することが出来るよ!
    しかも無料で!すごく魅力的だけどめっちゃハマった話
    https://qiita.com/chanibarin/items/48d5f5946b1e6c97e379

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-26 (水) 13:18:53 (38d)