Sample code for 30+ languages & platforms
Dart

List Groups

See more Microsoft Group Examples

List all the groups available in an organization, including but not limited to Office 365 Groups.

See https://docs.microsoft.com/en-us/graph/api/group-list?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');

  // Send a GET request to https://graph.microsoft.com/v1.0/groups?$orderby=displayName
  final String strResponse;
  try {
    strResponse = http.quickGetStr('https://graph.microsoft.com/v1.0/groups?\$orderby=displayName');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final json = CkJsonObject();
  json.load(strResponse);
  json.emitCompact = false;

  if (http.lastStatus != 200) {
    print(json.emit());
    print('Failed, response status code = ${http.lastStatus}');
    return;
  }

  print(json.emit());

  // Sample output:
  // (See parsing code below..)

  // {
  //     "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
  //     "value": [
  //         {
  //             "id": "45b7d2e7-b882-4a80-ba97-10b7a63b8fa4",
  //             "deletedDateTime": null,
  //             "classification": null,
  //             "createdDateTime": "2018-12-22T02:21:05Z",
  //             "creationOptions": [],
  //             "description": "Self help community for golf",
  //             "displayName": "Golf Assist",
  //             "groupTypes": [
  //                 "Unified"
  //             ],
  //             "mail": "golfassist@contoso.com",
  //             "mailEnabled": true,
  //             "mailNickname": "golfassist",
  //             "onPremisesLastSyncDateTime": null,
  //             "onPremisesSecurityIdentifier": null,
  //             "onPremisesSyncEnabled": null,
  //             "preferredDataLocation": "CAN",
  //             "proxyAddresses": [
  //                 "smtp:golfassist@contoso.onmicrosoft.com",
  //                 "SMTP:golfassist@contoso.com"
  //             ],
  //             "renewedDateTime": "2018-12-22T02:21:05Z",
  //             "resourceBehaviorOptions": [],
  //             "resourceProvisioningOptions": [],
  //             "securityEnabled": false,
  //             "visibility": "Public",
  //             "onPremisesProvisioningErrors": []
  //         },
  //         {
  //             "id": "d7797254-3084-44d0-99c9-a3b5ab149538",
  //             "deletedDateTime": null,
  //             "classification": null,
  //             "createdDateTime": "2018-11-19T20:29:40Z",
  //             "creationOptions": [],
  //             "description": "Talk about golf",
  //             "displayName": "Golf Discussion",
  //             "groupTypes": [],
  //             "mail": "golftalk@contoso.com",
  //             "mailEnabled": true,
  //             "mailNickname": "golftalk",
  //             "onPremisesLastSyncDateTime": null,
  //             "onPremisesSecurityIdentifier": null,
  //             "onPremisesSyncEnabled": null,
  //             "preferredDataLocation": "CAN",
  //             "proxyAddresses": [
  //                 "smtp:golftalk@contoso.onmicrosoft.com",
  //                 "SMTP:golftalk@contoso.com"
  //             ],
  //             "renewedDateTime": "2018-11-19T20:29:40Z",
  //             "resourceBehaviorOptions": [],
  //             "resourceProvisioningOptions": [],
  //             "securityEnabled": false,
  //             "visibility": null,
  //             "onPremisesProvisioningErrors": []
  //         }
  //     ]
  // }
  // 
  // Use this online tool to generate parsing code from sample JSON: 
  // Generate Parsing Code from JSON

  var i = 0;
  var id = '';
  var deletedDateTime = '';
  var classification = '';
  var createdDateTime = '';
  var description = '';
  var displayName = '';
  var mail = '';
  var mailNickname = '';
  var onPremisesLastSyncDateTime = '';
  var onPremisesSecurityIdentifier = '';
  var onPremisesSyncEnabled = '';
  var preferredDataLocation = '';
  var renewedDateTime = '';
  var visibility = '';
  var j = 0;
  var countJ = 0;
  var strVal = '';

  final odataContext = json.stringOf('"@odata.context"');
  i = 0;
  final countI = json.sizeOfArray('value');
  while (i < countI) {
    json.i = i;
    id = json.stringOf('value[i].id');
    deletedDateTime = json.stringOf('value[i].deletedDateTime');
    classification = json.stringOf('value[i].classification');
    createdDateTime = json.stringOf('value[i].createdDateTime');
    description = json.stringOf('value[i].description');
    displayName = json.stringOf('value[i].displayName');
    mail = json.stringOf('value[i].mail');
    json.boolOf('value[i].mailEnabled');
    mailNickname = json.stringOf('value[i].mailNickname');
    onPremisesLastSyncDateTime = json.stringOf('value[i].onPremisesLastSyncDateTime');
    onPremisesSecurityIdentifier = json.stringOf('value[i].onPremisesSecurityIdentifier');
    onPremisesSyncEnabled = json.stringOf('value[i].onPremisesSyncEnabled');
    preferredDataLocation = json.stringOf('value[i].preferredDataLocation');
    renewedDateTime = json.stringOf('value[i].renewedDateTime');
    json.boolOf('value[i].securityEnabled');
    visibility = json.stringOf('value[i].visibility');
    j = 0;
    countJ = json.sizeOfArray('value[i].creationOptions');
    while (j < countJ) {
      json.j = j;
      // ...
      j++;
    }

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

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

    j = 0;
    countJ = json.sizeOfArray('value[i].resourceBehaviorOptions');
    while (j < countJ) {
      json.j = j;
      // ...
      j++;
    }

    j = 0;
    countJ = json.sizeOfArray('value[i].resourceProvisioningOptions');
    while (j < countJ) {
      json.j = j;
      // ...
      j++;
    }

    j = 0;
    countJ = json.sizeOfArray('value[i].onPremisesProvisioningErrors');
    while (j < countJ) {
      json.j = j;
      // ...
      j++;
    }

    i++;
  }

  print('Success.');
}