[SalesForce] How to dynamically creating chatter groups in Apex

It looks like ConnectApi.ChatterGroup is abstract. Is there really no way to create Chatter groups via connect in Apex?

Is the solution to call the chatter REST API from APEX?

UPDATED based on answer below:

 public static Id createGroup(String groupName, List<User> users) {

    CollaborationGroup g = new CollaborationGroup(Name=groupName, CollaborationType='Public');
    g.OwnerId = UserInfo.getUserId() ;
    insert g;

    List<CollaborationGroupMember> groupMembers = new List<CollaborationGroupMember>();

    for (User user: users) {
        CollaborationGroupMember member = new CollaborationGroupMember();
        member.MemberId = user.Id ;
        member.CollaborationGroupId = g.Id ;
        groupMembers.add(member);
    }

    insert groupMembers;
    return g.Id ;
}

Best Answer

No need for connectapi to create a chatter group. You can created it directly e.g.:

CollaborationGroup myGroup = new CollaborationGroup();
myGroup.Name='My Group';
myGroup.CollaborationType='Public'; //can be 'Public' or 'Private'                   
insert myGroup;

Then to add a member:

CollaborationGroupMember groupMember = new CollaborationGroupMember();
groupMember.memberid = userId; //id of User you wish to add
groupMember.CollaborationGroupId = myGroup.Id; //Id of group created above
insert groupMember; 
Related Topic