プラットフォーム間でのプッシュ通知

Kii Cloud では、FCM、APNs、MQTT などのプッシュ通知ネットワークに対して、横断的なプッシュ通知を行うことができます。

横断的なプッシュ通知

Kii Cloud でのプッシュ通知の送信先はユーザーです。あるユーザーにプッシュ通知を送信する際は、各プッシュ通知ネットワークでインストール済みのデバイスのうち、送信先ユーザーに紐付いているデバイスにプッシュメッセージが送信されます。

以下に例を示します。

ここでは、ユーザー 1 が Android 端末を、ユーザー 2 が Android 端末と iOS 端末をインストールしているとします。各端末は、プラットフォームに応じたプッシュ通知ネットワークを使用しており、Android 端末は FCM、iOS 端末は APNs にインストールされています。

ここで、ユーザー 2 にプッシュ通知を送信する場合(:num1:)、Kii Cloud はユーザー 2 に紐付いたデバイスすべてに対して FCM と APNs にプッシュ通知のリクエストを行います(:num2:)。FCM と APNs は指定された Android 端末と iOS 端末にプッシュ通知を送信します(:num3:)。

対象となるプッシュ通知ネットワーク

実際にプッシュ通知が行われるネットワークは以下のように決まります。

  • FCM と APNs では、開発者ポータルからそれぞれのプッシュ通知を使用するために設定が必要です。ここで設定されていないネットワークは使用されません。MQTT は特別な設定が不要です。

  • デバイスごとに、FCM/APNs サーバーからデバイストークン(登録 ID)を取得し、それを Kii Cloud にインストールする初期化処理が必要です。MQTT ではデバイストークンは不要ですが、インストール処理は必要です。そのユーザーのデバイスがインストールされていない場合、通知されません。

  • Kii Cloud がサポートする 3 つのプッシュ通知機能のうち、ユーザープッシュ通知(Push to User) と、管理者メッセージのプッシュ通知(Direct Push) は、送信時に送信対象のネットワークを選択することができます。対象としていないネットワークへはプッシュ通知されません。サーバー上変更のプッシュ通知(Push to App) では、常にすべてのプッシュ通知ネットワークにプッシュ通知が届きます。

リクエスト元端末へのプッシュ通知

プッシュ通知のリクエストをデバイスから実行した場合、そのデバイス自身へもプッシュ通知されることがある点にご注意ください。

以下に例を示します。ここでは、Android スマートフォン、iPhone、iPad の 3 つを同一のユーザーが初期化済みとします。たとえば、自分が持つ端末間でデータ同期を実現するため、Android 端末から自分自身が送信先となったプッシュ通知をリクエストすると、iPhone、iPad の他、Android 端末自身へもプッシュ通知が戻ってきます。

開発環境と配布環境

Kii Cloud でのプッシュ通知は、どのプッシュ通知ネットワークを利用する場合も、開発(Development)と配布(Production)という 2 つの異なる環境に対して実行することができます。これにより、リリース中の環境と切り離して、開発環境にだけプッシュメッセージを送信するなどのテストを行うことができます。

APNs では、APNs の仕様として開発環境と配布環境の 2 つの環境を持っています。APNs 以外のプッシュ通知ネットワークでは、Kii Cloud が開発環境と配布環境の 2 つの環境を利用できるよう、独自の機能を提供しています。

プッシュ通知の送信先は、以下のように決まります。

プッシュ通知の例

たとえば、以下の 3 つの方法でデバイスをインストールしたとします。

  • デバイス A:FCM の開発環境を指定して Android デバイスをインストール
  • デバイス B:FCM の配布環境を指定して Android デバイスをインストール
  • デバイス C:APNs の開発環境を指定して iOS デバイスをインストール

ユーザープッシュ通知(Push to User)の API パラメーターで、開発環境、かつ、FCM と APNs を指定してメッセージを送信すると、デバイス A とデバイス C にだけプッシュ通知が届きます。