トピックの作成

ここでは、スコープごとにトピックの作成方法を説明していきます。

アプリケーションスコープのトピックの作成

アプリケーションスコープのトピックは、アプリ開発者のみ作成できます。作成したトピックは、全てのアプリユーザーから購読できますが、このトピックにメッセージを送信できるのは、デフォルト状態ではトピック作成者(つまりアプリ開発者)だけです。

アプリケーションスコープのトピックは、REST API または Kii Cloud SDK for JavaScript を使って作成します。

REST API を使って作成

以下の手順で作成します。

  1. 「REST スタートガイド - アプリ管理者向け機能」 の内容に従い、アプリ管理者トークンを取得します。
  2. 次の例のようにしてアプリケーションスコープのトピックを作成します(この例では "SendingAlert" という名前のトピックを作成しています)。
curl -v -X PUT \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/topics/SendingAlert"

{APP_ID} には実際の AppID の値を入れます。また、取得したアプリ管理者トークンを {ACCESS_TOKEN} の箇所に入れてください。

トピック名は英数字、"-"、"_" から構成される 64 文字までの文字列として指定します。

Kii Cloud SDK for JavaScript を使って作成

Kii Cloud SDK for JavaScript の アプリケーションスコープのトピックの作成 を参照してください。

グループスコープのトピックの作成

グループスコープのトピックは、グループメンバーであれば誰でも作成可能です。また、デフォルト状態ではグループメンバーであれば誰でも購読可能であり、全てのグループメンバーがトピックに対してメッセージを送信できます。

グループスコープのトピックは通常アプリケーションによって動的に作成します。以下に、グループスコープのトピックを作成する例を挙げます。

  • try {
      // Create a group.
      String groupName = "MyGroup";
      KiiGroup group = Kii.group(groupName);
      group.save();
    
      // Create a topic in the group scope.
      String topicName = "GroupTopic";
      KiiTopic topic = group.topic(topicName);
    
      // Save the topic to Kii Cloud.
      topic.save();
    } catch (IOException ioe) {
      // Handle the error.
    } catch (GroupOperationException goe) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Create a group.
    String groupName = "MyGroup";
    final KiiGroup group = Kii.group(groupName);
    group.save(new KiiGroupCallBack() {
      @Override
      public void onSaveCompleted(int token, KiiGroup group, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
    
        // Create a topic in the group scope.
        String topicName = "GroupTopic";
        KiiTopic topic = group.topic(topicName);
    
        // Save the topic to Kii Cloud.
        topic.save(new KiiTopicCallBack() {
          @Override
          public void onSaveCompleted(int taskId, KiiTopic target, Exception exception) {
            if (exception != null) {
              // Handle the error.
              return;
            }
          }
        });
      }
    });

ここでは、以下の処理を実行しています。

  • トピックを作成したいグループインスタンスの topic メソッドを実行し、グループスコープのトピックを作成します。
  • save メソッドを実行し、トピックを Kii Cloud に保存します。

トピック名は英数字、"-"、"_" から構成される 64 文字までの文字列として指定します。

ユーザースコープのトピックの作成

ユーザースコープのトピックは、ログイン済みのユーザーであれば誰でも作成可能です。このトピックはデフォルト状態ではユーザーに閉じており、トピックの購読およびトピックへのメッセージ送信を行えるのはこのユーザーのみになります。

ユーザースコープのトピックは通常アプリケーションによって動的に作成します。以下に、ユーザースコープのトピックを作成する例を挙げます。

  • try {
      // Create a topic in the user scope.
      String topicName = "MyTODO";
      KiiTopic topic = KiiUser.topic(topicName);
    
      // Save the topic to Kii Cloud.
      topic.save();
    } catch (IOException ioe ) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Create a topic in the user scope.
    String topicName = "MyTODO";
    KiiTopic topic = KiiUser.topic(topicName);
    
    // Save the topic to Kii Cloud.
    topic.save(new KiiTopicCallBack() {
      @Override
      public void onSaveCompleted(int taskId, KiiTopic target, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
      }
    });

ここでは以下の処理を実行しています。

  • topic メソッドを実行し、ログイン中のユーザーに対してユーザースコープのトピックを作成します。
  • save メソッドを実行し、トピックを Kii Cloud に保存します。

トピック名は英数字、"-"、"_" から構成される 64 文字までの文字列として指定します。

KiiUser.topic() はスタティックメソッドですが、これはログイン中のユーザーに対する操作です。トピックは常にユーザーのインスタンスごとに作成します。