グループの作成

ログイン済みのユーザーはグループを作成できます。グループを作成したユーザーが、このグループのオーナーとなります。

グループを作成する際は、以下の組み合わせを選択できます。

  • グループ ID を Kii Cloud が自動発行するか、クライアントから指定するか
  • グループ作成時にメンバーを同時に指定するか、しないか

ここでは、以下の 3 通りの方法でグループを作成するサンプルコードを示します。サンプルコードのパラメーターにより、上記の組み合わせを実現できます。

ID の自動発行によるグループの作成

新規グループを作成するサンプルコードを以下に挙げます。

  • // Create a group.
    KiiGroup group = Kii.group("myGroup", null);
    
    try {
      // Save the group on the server.
      group.save();
    
      // Get the reference URI and ID of the group.
      Uri groupUri = group.toUri();
      String groupID = group.getID();
    } catch (GroupOperationException e) {
      // Handle the error.
    }
  • // Create a group.
    KiiGroup group = Kii.group("myGroup", null);
    
    // Save the group on the server.
    group.save(new KiiGroupCallBack() {
      @Override
      public void onSaveCompleted(int token, KiiGroup group, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
    
        // Get the reference URI and ID of the group.
        Uri groupUri = group.toUri();
        String groupID = group.getID();
      }
    });

基本手順は以下のとおりです。

  1. group() メソッドを使用して KiiGroup インスタンスを生成します。
  2. save() メソッドをコールして KiiGroup の作成リクエストを送信します。

グループの作成時にはグループ名を指定します。グループ名は 190 文字までで、使用できる文字などの制限は特にありません。既存のグループ名との重複も可能です。グループ名はデバッグや表示が目的であるため、グループ名を使って作成済みのグループを取得(再インスタンス化)することはできません。

グループ作成後、toUri() メソッドまたは getID() メソッドのいずれかによって、グループの URI または ID を取得、保存しておきます。これらの情報は、後ほどこのグループを 既存グループとして参照する 際に利用します。

メンバー指定でのグループの作成

グループ作成と同時に、グループメンバーを追加することもできます。

以下にサンプルコードを挙げます。

  • // Set a group member.
    List<KiiUser> members = new ArrayList<KiiUser>();
    members.add(KiiUser.userWithID("User ID of a member"));
    
    // Create a group.
    KiiGroup group = Kii.group("myGroup", members);
    
    try {
      // Save the group on the server.
      group.save();
    
      // Get the reference URI and ID of the group.
      Uri groupUri = group.toUri();
      String groupID = group.getID();
    } catch (GroupOperationException e) {
      // Handle the error.
    }
  • // Set a group member.
    List<KiiUser> members = new ArrayList<KiiUser>();
    members.add(KiiUser.userWithID("User ID of a member"));
    
    // Create a group.
    KiiGroup group = Kii.group("myGroup", members);
    
    // Save the group on the server.
    group.save(new KiiGroupCallBack() {
      @Override
      public void onSaveCompleted(int token, KiiGroup group, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
    
        // Get the reference URI and ID of the group.
        Uri groupUri = group.toUri();
        String groupID = group.getID();
      }
    });

group() メソッドの第 2 引数にグループメンバーを指定してください。

なお、グループメンバーは 後ほど追加 することもできます。

ID 指定でのグループの作成

先ほどまでの例ではグループ ID が自動的に付与されますが、グループ作成時にグループ ID を明示的に指定することもできます。

グループ ID を指定してグループを作成する例を以下に挙げます。

  • // This example assumes that users have a custom attribute "userSequence".
    // Create a group ID with the attribute.
    String userShortID = KiiUser.getCurrentUser().getString("userSequence");
    String groupID = "my-group-" + userShortID;
    String groupName = "myGroup";
    
    try {
      // Create and save a group on the server.
      KiiGroup group = KiiGroup.registerGroupWithID(groupID, groupName, null);
    
      // Get the reference URI of the group.
      Uri groupUri = group.toUri();
    } catch (GroupOperationException e) {
      // Handle the error.
    }
  • // This example assumes that users have a custom attribute "userSequence".
    // Create a group ID with the attribute.
    String userShortID = KiiUser.getCurrentUser().getString("userSequence");
    String groupID = "my-group-" + userShortID;
    String groupName = "myGroup";
    
    // Create and save a group on the server.
    KiiGroup.registerGroupWithID(groupID, groupName, null, new KiiCallback<KiiGroup>() {
      @Override
      public void onComplete(KiiGroup group, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
    
        // Get the reference URI of the group.
        Uri groupUri = group.toUri();
      }
    });

registerGroupWithID() メソッドを利用して、グループの作成時にグループ ID を指定します。グループ ID は、小文字の英数字、"."、"-"、"_" から構成される 30 文字までの文字列として指定します。既存のグループ ID と重複した場合はエラーになります。

例では "my-group-" というプリフィックスの後にユーザーを一意に表す値を連結し、グループ ID としています。こうすることでユーザーがわかれば、そのユーザーがオーナーになっているグループ ID が特定できるので、Twitter のフォロワーをグループで管理するようなケースで役に立ちます。なお、この例では、カスタム属性としてシーケンス番号のような短い一意の値が設定済みであることを想定しています。ユーザー ID を使用すると 30 文字を超えるためご注意ください。

なお、グループメンバーを同時追加することもできます。registerGroupWithID() メソッドの第 3 引数にグループメンバーを指定してください。