Sample code for 30+ languages & platforms
React Native

Outlook List Contacts

See more Outlook Contact Examples

List Outlook Contacts

Chilkat React Native Downloads

React Native
import { Http, JsonObject, StringBuilder } from '@chilkat/react-native'

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

  const http = new Http();

  // Use your previously obtained access token here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint).

  const jsonToken = new JsonObject();
  try {
    jsonToken.loadFile('qa_data/tokens/outlookContacts.json');
  } catch {
    console.log(jsonToken.lastErrorText);
    return;
  }

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

  // Send the following GET:

  // GET https://graph.microsoft.com/v1.0/me/contacts
  const sbJson = new StringBuilder();
  try {
    await http.quickGetSbAsync('https://graph.microsoft.com/v1.0/me/contacts', sbJson);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  const statusCode = http.lastStatus;
  console.log(`Response status code = ${statusCode}`);

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

  const jResp = new JsonObject();
  jResp.loadSb(sbJson);
  jResp.emitCompact = false;
  console.log(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": {}
  //     },
  // ...
  //   ]
  // }

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

  const odataContext = jResp.stringOf('"@odata.context"');
  let i = 0;
  const 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++;
  }
}