Sample code for 30+ languages & platforms
AutoIt

Outlook List Contacts

See more Outlook Contact Examples

List Outlook Contacts

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This example requires the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oHttp = ObjCreate("Chilkat.Http")

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

$oJsonToken = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonToken.LoadFile("qa_data/tokens/outlookContacts.json")
If ($bSuccess = False) Then
    ConsoleWrite($oJsonToken.LastErrorText & @CRLF)
    Exit
EndIf

$oHttp.AuthToken = $oJsonToken.StringOf("access_token")

;  Send the following GET:

;  GET https://graph.microsoft.com/v1.0/me/contacts
$oSbJson = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oHttp.QuickGetSb("https://graph.microsoft.com/v1.0/me/contacts",$oSbJson)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

Local $iStatusCode = $oHttp.LastStatus
ConsoleWrite("Response status code = " & $iStatusCode & @CRLF)

If ($iStatusCode <> 200) Then
    ConsoleWrite($oSbJson.GetAsString() & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

$oJResp = ObjCreate("Chilkat.JsonObject")
$oJResp.LoadSb($oSbJson)
$oJResp.EmitCompact = False
ConsoleWrite($oJResp.Emit() & @CRLF)

;  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": {}
;      },
;  ...
;    ]
;  }

Local $sOdata_etag
Local $sId
Local $sCreatedDateTime
Local $sLastModifiedDateTime
Local $sChangeKey
Local $sParentFolderId
Local $sBirthday
Local $sFileAs
Local $sDisplayName
Local $sGivenName
Local $sInitials
Local $sMiddleName
Local $sNickName
Local $surname
Local $sTitle
Local $sYomiGivenName
Local $sYomiSurname
Local $sYomiCompanyName
Local $sGeneration
Local $sJobTitle
Local $sCompanyName
Local $sDepartment
Local $sOfficeLocation
Local $sProfession
Local $sBusinessHomePage
Local $sAssistantName
Local $sManager
Local $sMobilePhone
Local $spouseName
Local $sPersonalNotes
Local $iJ
Local $iCount_j
Local $strVal
Local $sName
Local $sAddress

Local $sOdata_context = $oJResp.StringOf("""@odata.context""")
Local $i = 0
Local $iCount_i = $oJResp.SizeOfArray("value")
While $i < $iCount_i
    $oJResp.I = $i
    $sOdata_etag = $oJResp.StringOf("value[i].""@odata.etag""")
    $sId = $oJResp.StringOf("value[i].id")
    $sCreatedDateTime = $oJResp.StringOf("value[i].createdDateTime")
    $sLastModifiedDateTime = $oJResp.StringOf("value[i].lastModifiedDateTime")
    $sChangeKey = $oJResp.StringOf("value[i].changeKey")
    $sParentFolderId = $oJResp.StringOf("value[i].parentFolderId")
    $sBirthday = $oJResp.StringOf("value[i].birthday")
    $sFileAs = $oJResp.StringOf("value[i].fileAs")
    $sDisplayName = $oJResp.StringOf("value[i].displayName")
    $sGivenName = $oJResp.StringOf("value[i].givenName")
    $sInitials = $oJResp.StringOf("value[i].initials")
    $sMiddleName = $oJResp.StringOf("value[i].middleName")
    $sNickName = $oJResp.StringOf("value[i].nickName")
    $surname = $oJResp.StringOf("value[i].surname")
    $sTitle = $oJResp.StringOf("value[i].title")
    $sYomiGivenName = $oJResp.StringOf("value[i].yomiGivenName")
    $sYomiSurname = $oJResp.StringOf("value[i].yomiSurname")
    $sYomiCompanyName = $oJResp.StringOf("value[i].yomiCompanyName")
    $sGeneration = $oJResp.StringOf("value[i].generation")
    $sJobTitle = $oJResp.StringOf("value[i].jobTitle")
    $sCompanyName = $oJResp.StringOf("value[i].companyName")
    $sDepartment = $oJResp.StringOf("value[i].department")
    $sOfficeLocation = $oJResp.StringOf("value[i].officeLocation")
    $sProfession = $oJResp.StringOf("value[i].profession")
    $sBusinessHomePage = $oJResp.StringOf("value[i].businessHomePage")
    $sAssistantName = $oJResp.StringOf("value[i].assistantName")
    $sManager = $oJResp.StringOf("value[i].manager")
    $sMobilePhone = $oJResp.StringOf("value[i].mobilePhone")
    $spouseName = $oJResp.StringOf("value[i].spouseName")
    $sPersonalNotes = $oJResp.StringOf("value[i].personalNotes")
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("value[i].categories")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("value[i].imAddresses")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("value[i].homePhones")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("value[i].businessPhones")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $strVal = $oJResp.StringOf("value[i].businessPhones[j]")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("value[i].children")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("value[i].emailAddresses")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sName = $oJResp.StringOf("value[i].emailAddresses[j].name")
        $sAddress = $oJResp.StringOf("value[i].emailAddresses[j].address")
        $iJ = $iJ + 1
    Wend
    $i = $i + 1
Wend