グループの作成

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

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

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

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

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

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

  • var groupName = "myGroup";
    
    // Create a group.
    var group = KiiGroup.groupWithName(groupName);
    
    // Save the group on the server.
    group.save({
      success: function(theGroup) {
        // Get the reference URI and ID of the group.
        var groupUri = theGroup.objectURI();
        var groupID = theGroup.getID();
      },
      failure: function(theGroup, errorString) {
        // Handle the error.
      }
    });
  • var groupName = "myGroup";
    
    // Create a group.
    var group = KiiGroup.groupWithName(groupName);
    
    // Save the group on the server.
    group.save().then(
      function(theGroup) {
        // Get the reference URI and ID of the group.
        var groupUri = theGroup.objectURI();
        var groupID = theGroup.getID();
      }
    ).catch(
      function(error) {
        var theGroup = error.target;
        var errorString = error.message;
        // Handle the error.
      }
    );

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

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

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

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

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

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

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

  • var groupName = "myGroup";
    var members = [];
    
    // Set a group member.
    members.push(KiiUser.userWithID("User ID of a member"));
    
    // Create a group.
    var group = KiiGroup.groupWithNameAndMembers(groupName, members);
    
    // Save the group on the server.
    group.save({
      success: function(theGroup) {
        // Get the reference URI and ID of the group.
        var groupUri = theGroup.objectURI();
        var groupID = theGroup.getID();
      },
      failure: function(theGroup, errorString) {
        // Handle the error.
      }
    });
  • var groupName = "myGroup";
    var members = [];
    
    // Set a group member.
    members.push(KiiUser.userWithID("User ID of a member"));
    
    // Create a group.
    var group = KiiGroup.groupWithNameAndMembers(groupName, members);
    
    // Save the group on the server.
    group.save().then(
      function(theGroup) {
        // Get the reference URI and ID of the group.
        var groupUri = theGroup.objectURI();
        var groupID = theGroup.getID();
      }
    ).catch(
      function(error) {
        var theGroup = error.target;
        var errorString = error.message;
        // Handle the error.
      }
    );

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

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

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

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

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

  • // This example assumes that users have a custom attribute "userSequence".
    // Create a group ID with the attribute.
    var userShortID = KiiUser.getCurrentUser().get("userSequence");
    var groupId = "my-group-" + userShortID;
    var groupName = "myGroup";
    
    // Create and save a group on the server.
    KiiGroup.registerGroupWithID(groupId, groupName, null, {
      success: function(theGroup) {
        // Get the reference URI of the group.
        var groupUri = theGroup.objectURI();
      },
      failure: function(theGroup, errorString) {
        // Handle the error.
      }
    });
  • // This example assumes that users have a custom attribute "userSequence".
    // Create a group ID with the attribute.
    var userShortID = KiiUser.getCurrentUser().get("userSequence");
    var groupId = "my-group-" + userShortID;
    var groupName = "myGroup";
    
    // Create and save a group on the server.
    KiiGroup.registerGroupWithID(groupId, groupName, null).then(
      function(theGroup) {
        // Get the reference URI of the group.
        var groupUri = theGroup.objectURI();
      }
    ).catch(
      function(error) {
        var theGroup = error.target;
        var errorString = error.message;
        var addMembersArray = error.addMembersArray;
        // Handle the error.
      }
    );

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

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

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