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

サーバー上変更のプッシュ通知(Push to App)は、購読中の Bucket の変更をプッシュ通知として受け取る機能です。機能概要については、サーバー上変更のプッシュ通知(Push to App) をご覧ください。

Bucket の購読

Bucket を購読して監視を開始する例を以下に挙げます。監視を開始すると、以後この Bucket 内の Object に変更が発生する度に、プッシュ通知がアプリに送信されます。

int ret;

/* Set bucket parameters. */
kii_bucket_t bucket;
memset(&bucket, 0x00, sizeof(kii_bucket_t));
bucket.scope = KII_SCOPE_THING;
bucket.bucket_name = "myBucket";
bucket.scope_id = "VENDOR_THING_ID:rBnvSPOXBDF9r29GJeGS";

/* Subscribe to the bucket. */
ret = kii_push_subscribe_bucket(&kii, &bucket);
if (ret != 0) {
  /* Handle the error. */
  return;
}

講読対象の Bucket は、kii_bucket_t 構造体で指定します。指定方法は、Object の作成 をご覧ください。講読できる Bucket は、Thing スコープと Application Scope のみです。

オーナーのデータが変更されたことを知りたい場合は、ユーザープッシュ通知(Push to User) を使用してください。Bucket を操作した後、プッシュメッセージをトピック経由で送信するように実装します。

Bucket の講読解除

Bucket の購読を解除する例を以下に挙げます。購読を解除すると、以降この Bucket 内の Object に変更が発生しても、プッシュ通知は届かなくなります。

int ret;

/* Set bucket parameters. */
kii_bucket_t bucket;
memset(&bucket, 0x00, sizeof(kii_bucket_t));
bucket.scope = KII_SCOPE_THING;
bucket.bucket_name = "myBucket";
bucket.scope_id = "VENDOR_THING_ID:rBnvSPOXBDF9r29GJeGS";

/* Unsubscribe from the bucket. */
ret = kii_push_unsubscribe_bucket(&kii, &bucket);
if (ret != 0) {
  /* Handle the error. */
  return;
}

サーバー上の変更をプッシュ通知として受け取る

プッシュ通知を受け取るには、プッシュ通知の受信ハンドラーを設定します。実装方法は、受信ハンドラーの実装 をご覧ください。

プッシュメッセージの例

以下は、Push to App のプッシュ通知を受け取ったとき、受信できるデータのイメージです。Push to App では、更新があった Bucket や Object、その更新の種類(追加された、削除されたなど)のような情報を、ハンドラーの引数として取得できます。

これらのデータの詳細は、Kii Cloud SDK for Android の Javadoc を参考にしてください。

{
  "appID": "11111111",
  "bucketID": "myBucket",
  "bucketType": "rw",
  "modifiedAt": 1470109920976,
  "objectID": "77b5dd00-5864-11e6-935b-22000aad0899",
  "objectScopeAppID": "11111111",
  "objectScopeThingID": "th.727f20b00022-e1ba-6e11-18c2-0af88aeb",
  "objectScopeType": "APP_AND_THING",
  "origin": "EVENT",
  "sourceURI": "kiicloud://things/th.727f20b00022-e1ba-6e11-18c2-0af88aeb/buckets/myBucket/objects/77b5dd00-5864-11e6-935b-22000aad0899",
  "type": "DATA_OBJECT_CREATED",
  "when": 1470109921000
}

Push to App では、プッシュメッセージの内容をカスタマイズできません。回避方法は こちら をご覧ください。