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

目次

概要

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

  • プッシュは、特定のアカウントに対して行われるが、
    インフラストラクチャとしては、Apple(or Google)の
    通知用サーバに、スマホネイティブ・アプリケーションを登録する形になる。
  • APNs
    Appleの通知用サーバ(iOSに通知を行う)
  • FCM
    Googleの通知用サーバ(Androidに通知を行う)
  • 登録後に、アプリケーションをインストールすると、
    Device Tokenや Registration Token等と言った端末+アプリを識別する
    トークンが発行されるのでそれを使用してサーバ(Resource Server)から通知を行う。

もできる。

仕組み

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

個人に送信

初期化

  1. バックエンドサーバにFCM/APNs/JPushが発行した
    サービスアカウント情報(JSONファイル)を配置する。
  2. デバイスにアプリケーションをインストールする際、
    FCM/APNs/JPushサーバにデバイス登録を行う。
  3. 登録結果としてデバイストークンを受け取る。
  4. デバイストークンをバックエンドサーバに送って保存する。
    (この際、ユーザIDと紐付けて保存するため認証が必要)

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

通知の送信

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

トピック購読者に送信

初期化

  • 自端末のトピック登録依頼をFCM/APNs/JPushサーバに送信する。
    • 個人に送信と異なり、デバイストークンは不要?
    • 恐らく、トピック登録時、引数に現れないが、内部的に、
      FCM/APNs/JPushサーバにデバイストークンを渡している。

通知の送信

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

特定グループに送信

初期化

個人に送信と異なる点は、
グループを作成依頼をFCM/APNs/JPushサーバに送信して、通知キーを受け取る点。

通知の送信

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

全体に送信

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

参考

iOS

...。

Android

  • androidでプッシュ通知を実装する | TECH Projin

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: 2019-06-18 (火) 11:47:02 (121d)