Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

Create Group

See more Microsoft Group Examples

Create a new group as specified in the request body. You can create one of three types of groups:
  • Office 365 Group (unified group)
  • Dynamic group
  • Security group

This operation returns by default only a subset of the properties for each group. These default properties are noted in the Properties section.

See https://docs.microsoft.com/en-us/graph/api/group-post-groups?view=graph-rest-1.0 for more information.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  // Use your previously obtained access token as shown here:
  //    Get Microsoft Graph OAuth2 Access Token with Group.ReadWrite.All scope.

  final jsonToken = CkJsonObject();
  try {
    jsonToken.loadFile('qa_data/tokens/msGraphGroup.json');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  http.authToken = jsonToken.stringOf('access_token');

  // Create a JSON body for the HTTP POST
  // Use this online tool to generate the code from sample JSON: 
  // Generate Code to Create JSON

  // {
  //   "description": "Self help community for library",
  //   "displayName": "Library Assist",
  //   "groupTypes": [
  //     "Unified"
  //   ],
  //   "mailEnabled": true,
  //   "mailNickname": "library",
  //   "securityEnabled": false
  // }

  final json = CkJsonObject();
  json.updateString('description', 'Self help community for library');
  json.updateString('displayName', 'Library Assist');
  json.updateString('groupTypes[0]', 'Unified');
  json.updateBool('mailEnabled', true);
  json.updateString('mailNickname', 'library');
  json.updateBool('securityEnabled', false);

  // POST the JSON to https://graph.microsoft.com/v1.0/groups

  final resp = CkHttpResponse();
  try {
    http.httpJson('POST', 'https://graph.microsoft.com/v1.0/groups', json, 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  json.load(resp.bodyStr);
  json.emitCompact = false;

  if (resp.statusCode != 201) {
    print(json.emit());
    print('Failed, response status code = ${resp.statusCode}');
    return;
  }

  print(json.emit());

  // A sample response:
  // (See code for parsing this response below..)

  // {
  //     "id": "b320ee12-b1cd-4cca-b648-a437be61c5cd",
  // 	  "deletedDateTime": null,
  // 	  "classification": null,
  // 	  "createdDateTime": "2018-12-22T00:51:37Z",
  // 	  "creationOptions": [],
  // 	  "description": "Self help community for library",
  // 	  "displayName": "Library Assist",
  // 	  "groupTypes": [
  // 	      "Unified"
  // 	  ],
  // 	  "mail": "library7423@contoso.com",
  // 	  "mailEnabled": true,
  // 	  "mailNickname": "library",
  // 	  "onPremisesLastSyncDateTime": null,
  // 	  "onPremisesSecurityIdentifier": null,
  // 	  "onPremisesSyncEnabled": null,
  // 	  "preferredDataLocation": "CAN",
  // 	  "proxyAddresses": [
  // 	      "SMTP:library7423@contoso.com"
  // 	  ],
  // 	  "renewedDateTime": "2018-12-22T00:51:37Z",
  // 	  "resourceBehaviorOptions": [],
  // 	  "resourceProvisioningOptions": [],
  // 	  "securityEnabled": false,
  // 	  "visibility": "Public",
  // 	  "onPremisesProvisioningErrors": []
  // }

  // Use this online tool to generate parsing code from sample JSON: 
  // Generate Parsing Code from JSON

  var i = 0;
  var countI = 0;
  var strVal = '';

  final id = json.stringOf('id');
  final deletedDateTime = json.stringOf('deletedDateTime');
  final classification = json.stringOf('classification');
  final createdDateTime = json.stringOf('createdDateTime');
  final description = json.stringOf('description');
  final displayName = json.stringOf('displayName');
  final mail = json.stringOf('mail');
  final mailNickname = json.stringOf('mailNickname');
  final onPremisesLastSyncDateTime = json.stringOf('onPremisesLastSyncDateTime');
  final onPremisesSecurityIdentifier = json.stringOf('onPremisesSecurityIdentifier');
  final onPremisesSyncEnabled = json.stringOf('onPremisesSyncEnabled');
  final preferredDataLocation = json.stringOf('preferredDataLocation');
  final renewedDateTime = json.stringOf('renewedDateTime');
  final visibility = json.stringOf('visibility');
  i = 0;
  countI = json.sizeOfArray('creationOptions');
  while (i < countI) {
    json.i = i;
    i++;
  }

  i = 0;
  countI = json.sizeOfArray('groupTypes');
  while (i < countI) {
    json.i = i;
    strVal = json.stringOf('groupTypes[i]');
    i++;
  }

  i = 0;
  countI = json.sizeOfArray('proxyAddresses');
  while (i < countI) {
    json.i = i;
    strVal = json.stringOf('proxyAddresses[i]');
    i++;
  }

  i = 0;
  countI = json.sizeOfArray('resourceBehaviorOptions');
  while (i < countI) {
    json.i = i;
    // ...
    i++;
  }

  i = 0;
  countI = json.sizeOfArray('resourceProvisioningOptions');
  while (i < countI) {
    json.i = i;
    // ...
    i++;
  }

  i = 0;
  countI = json.sizeOfArray('onPremisesProvisioningErrors');
  while (i < countI) {
    json.i = i;
    // ...
    i++;
  }

  print('Success.');
}