Sample code for 30+ languages & platforms
Dart

Outlook List Contacts

See more Outlook Contact Examples

List Outlook Contacts

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 here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint).

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

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

  // Send the following GET:

  // GET https://graph.microsoft.com/v1.0/me/contacts
  final sbJson = CkStringBuilder();
  try {
    http.quickGetSb('https://graph.microsoft.com/v1.0/me/contacts', sbJson);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final statusCode = http.lastStatus;
  print('Response status code = $statusCode');

  if (statusCode != 200) {
    print(sbJson.getAsString());
    print('Failed.');
    return;
  }

  final jResp = CkJsonObject();
  jResp.loadSb(sbJson);
  jResp.emitCompact = false;
  print(jResp.emit());

  // Sample output:

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

  // {
  //   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('4ee732c3-322e-4a6b-b729-2fd1eb5c6004')/contacts",
  //   "value": [
  //     {
  //       "@odata.etag": "W/\"EQAAABYAAABUcG0qWqkmQYqWLHQataQxAAD0iYfT\"",
  //       "id": "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAAAAAAEOAABUcG0qWqkmQYqWLHQataQxAAD0sxexAAA=",
  //       "createdDateTime": "2021-06-29T16:32:05Z",
  //       "lastModifiedDateTime": "2021-06-29T16:32:06Z",
  //       "changeKey": "EQAAABYAAABUcG0qWqkmQYqWLHQataQxAAD0iYfT",
  //       "categories": [
  //       ],
  //       "parentFolderId": "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQAuAAAAAAAu7cUXL5YOTrdsUIw7-v8FAQBUcG0qWqkmQYqWLHQataQxAAAAAAEOAAA=",
  //       "birthday": null,
  //       "fileAs": "",
  //       "displayName": "Pavel Bansky",
  //       "givenName": "Pavel",
  //       "initials": null,
  //       "middleName": null,
  //       "nickName": null,
  //       "surname": "Bansky",
  //       "title": null,
  //       "yomiGivenName": null,
  //       "yomiSurname": null,
  //       "yomiCompanyName": null,
  //       "generation": null,
  //       "imAddresses": [
  //       ],
  //       "jobTitle": null,
  //       "companyName": null,
  //       "department": null,
  //       "officeLocation": null,
  //       "profession": null,
  //       "businessHomePage": null,
  //       "assistantName": null,
  //       "manager": null,
  //       "homePhones": [
  //       ],
  //       "mobilePhone": null,
  //       "businessPhones": [
  //         "+1 732 555 0102"
  //       ],
  //       "spouseName": null,
  //       "personalNotes": "",
  //       "children": [
  //       ],
  //       "emailAddresses": [
  //         {
  //           "name": "Pavel Bansky",
  //           "address": "pavelb@fabrikam.onmicrosoft.com"
  //         }
  //       ],
  //       "homeAddress": {},
  //       "businessAddress": {},
  //       "otherAddress": {}
  //     },
  // ...
  //   ]
  // }

  var odataEtag = '';
  var id = '';
  var createdDateTime = '';
  var lastModifiedDateTime = '';
  var changeKey = '';
  var parentFolderId = '';
  var birthday = '';
  var fileAs = '';
  var displayName = '';
  var givenName = '';
  var initials = '';
  var middleName = '';
  var nickName = '';
  var surname = '';
  var title = '';
  var yomiGivenName = '';
  var yomiSurname = '';
  var yomiCompanyName = '';
  var generation = '';
  var jobTitle = '';
  var companyName = '';
  var department = '';
  var officeLocation = '';
  var profession = '';
  var businessHomePage = '';
  var assistantName = '';
  var manager = '';
  var mobilePhone = '';
  var spouseName = '';
  var personalNotes = '';
  var j = 0;
  var countJ = 0;
  var strVal = '';
  var name = '';
  var address = '';

  final odataContext = jResp.stringOf('"@odata.context"');
  var i = 0;
  final countI = jResp.sizeOfArray('value');
  while (i < countI) {
    jResp.i = i;
    odataEtag = jResp.stringOf('value[i]."@odata.etag"');
    id = jResp.stringOf('value[i].id');
    createdDateTime = jResp.stringOf('value[i].createdDateTime');
    lastModifiedDateTime = jResp.stringOf('value[i].lastModifiedDateTime');
    changeKey = jResp.stringOf('value[i].changeKey');
    parentFolderId = jResp.stringOf('value[i].parentFolderId');
    birthday = jResp.stringOf('value[i].birthday');
    fileAs = jResp.stringOf('value[i].fileAs');
    displayName = jResp.stringOf('value[i].displayName');
    givenName = jResp.stringOf('value[i].givenName');
    initials = jResp.stringOf('value[i].initials');
    middleName = jResp.stringOf('value[i].middleName');
    nickName = jResp.stringOf('value[i].nickName');
    surname = jResp.stringOf('value[i].surname');
    title = jResp.stringOf('value[i].title');
    yomiGivenName = jResp.stringOf('value[i].yomiGivenName');
    yomiSurname = jResp.stringOf('value[i].yomiSurname');
    yomiCompanyName = jResp.stringOf('value[i].yomiCompanyName');
    generation = jResp.stringOf('value[i].generation');
    jobTitle = jResp.stringOf('value[i].jobTitle');
    companyName = jResp.stringOf('value[i].companyName');
    department = jResp.stringOf('value[i].department');
    officeLocation = jResp.stringOf('value[i].officeLocation');
    profession = jResp.stringOf('value[i].profession');
    businessHomePage = jResp.stringOf('value[i].businessHomePage');
    assistantName = jResp.stringOf('value[i].assistantName');
    manager = jResp.stringOf('value[i].manager');
    mobilePhone = jResp.stringOf('value[i].mobilePhone');
    spouseName = jResp.stringOf('value[i].spouseName');
    personalNotes = jResp.stringOf('value[i].personalNotes');
    j = 0;
    countJ = jResp.sizeOfArray('value[i].categories');
    while (j < countJ) {
      jResp.j = j;
      j++;
    }

    j = 0;
    countJ = jResp.sizeOfArray('value[i].imAddresses');
    while (j < countJ) {
      jResp.j = j;
      j++;
    }

    j = 0;
    countJ = jResp.sizeOfArray('value[i].homePhones');
    while (j < countJ) {
      jResp.j = j;
      j++;
    }

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

    j = 0;
    countJ = jResp.sizeOfArray('value[i].children');
    while (j < countJ) {
      jResp.j = j;
      j++;
    }

    j = 0;
    countJ = jResp.sizeOfArray('value[i].emailAddresses');
    while (j < countJ) {
      jResp.j = j;
      name = jResp.stringOf('value[i].emailAddresses[j].name');
      address = jResp.stringOf('value[i].emailAddresses[j].address');
      j++;
    }

    i++;
  }
}