サーバー上変更のプッシュ通知(Push to App)

ある Bucket 内の KiiObject に変更があった際に、この事実をプッシュ通知として受け取れます。この機能を使うと、サーバー上で発生した変更を即座にモバイルアプリ側に反映させることができます。

このページでは、サーバー上変更のプッシュ通知(Push to App)がサポートしている機能について説明します。実装方法は以下を参照してください。

変更イベント

通知可能なサーバー上の変更イベントには以下のものがあります。

  • Bucket 内に新たな KiiObject が作成された。
  • Bucket 内の既存の KiiObject が更新された。
  • Bucket 内の既存の KiiObject が削除された。
  • Bucket 内の既存の KiiObject の ACL が更新された。
  • Bucket 内の既存の KiiObject の Object Body が更新された。
  • Bucket 内の既存の KiiObject の Object Body が削除された。

プッシュ通知の仕組み

Kii Cloud の プッシュ通知を利用する基本手順は次のとおりです。

  1. 対象 Bucket を購読(subscribe)する
  2. 対象 Bucket 内で KiiObject の変更が発生する
  3. 変更をプッシュ通知としてデバイスが受け取る

Bucket 内の更新の監視は、購読によって開始されます。更新を監視したい Bucket を購読しておくことで、その更新をプッシュ通知としてデバイスに通知できます。

Bucket を複数のユーザーが講読している状態で Bucket の更新イベントが発生すると、購読しているユーザーのデバイスすべてにプッシュ通知が送信されます(1 人が複数デバイスを所有している状態でもすべてのデバイスに送信されます)。上の例では、Bucket 内の KiiObject 更新 1 回に対して、2 人のデバイスに同時にプッシュ通知が行われています。購読していないユーザーのデバイスには送信されません。

手順 2 で対象となる変更は、プッシュ通知を設定していないプラットフォームから対象 Bucket が更新された場合も含みます。

講読対象のスコープ

購読対象は Bucket ごとに設定します。概要の Bucket のスコープに示すように、アプリケーション、グループ、ユーザーの 3 つのスコープに複数の Bucket があります。更新をプッシュ通知として受け取りたい場合、必要な Bucket の 1 つ 1 つに対して購読処理を行います。以下はそのイメージです。

Thing スコープでも同様に Bucket を購読できます。

ユーザーは、アクセス権のある任意の Bucket を購読できます。購読している Bucket のどれか 1 つに何らかの更新があると、その更新ごとにユーザーのすべてのデバイスにプッシュ通知が届きます。図では購読中となっている 3 つの Bucket のうち、1 つに更新があったため、プッシュ通知を受け取ります。

Bucket 内の更新がプッシュ通知で伝えられたとき、ペイロードには更新された Bucket や KiiObject の情報が含まれるため、サーバー上の更新の詳細を取得できます。

プッシュ通知の動作

この機能では、イベントが発生したとき、Kii Cloud がプッシュ通知を自動的に送出するため、以下の動きとなります。

  • Bucket を購読すると、その Bucket で発生した変更イベントのすべてが届きます。変更イベントの種類によってマスクすることはできません。

  • プッシュ通知は Bucket 内の更新イベントが 1 件あるごとに、1 回行われます。Bucket 内の複数オブジェクトを連続して更新すると、ほぼ同時に複数のプッシュ通知を受け取る点にご注意ください。

  • プッシュ通知はプッシュ用の初期化をしたすべてのデバイスに届きます。送信先のプッシュ通知ネットワークを選択することはできません。

メッセージのカスタマイズ

Push to App でのペイロードに含まれるデータは、Kii Cloud であらかじめ定められた形式になります。このため、iOS の場合、通知センターへの表示内容のカスタマイズはできません。また、常にすべてのプッシュ通知ネットワークに対してプッシュ通知が届きます。

これを回避したい場合、以下の 2 通りの方法を選択できます。

  • Push to User をモバイルアプリから使用します。あらかじめトピックを作成、講読しておき、モバイルアプリのコードから Bucket を更新したタイミングで、トピックにもプッシュメッセージの送信要求を送ります。トピックへのメッセージはカスタマイズ可能です。

  • Push to User と Server Code の サーバートリガー起動 を組み合わせます。あらかじめトピックを作成、講読しておき、本来 Push to App を利用したい Bucket をトリガー起動の対象とします。Bucket 更新時に Server Code が起動したタイミングで Kii Cloud SDK for JavaScript からトピックにプッシュメッセージを送信します。