DataFlex
DataFlex
Outlook List Contacts
See more Outlook Contact Examples
List Outlook ContactsChilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
Handle hoJsonToken
Variant vSbJson
Handle hoSbJson
Integer iStatusCode
Handle hoJResp
String sOdata_etag
String sId
String sCreatedDateTime
String sLastModifiedDateTime
String sChangeKey
String sParentFolderId
String sBirthday
String sFileAs
String sDisplayName
String sGivenName
String sInitials
String sMiddleName
String sNickName
String sSurname
String sTitle
String sYomiGivenName
String sYomiSurname
String sYomiCompanyName
String sGeneration
String sJobTitle
String sCompanyName
String sDepartment
String sOfficeLocation
String sProfession
String sBusinessHomePage
String sAssistantName
String sManager
String sMobilePhone
String sSpouseName
String sPersonalNotes
Integer j
Integer iCount_j
String sStrVal
String sName
String sAddress
String sOdata_context
Integer i
Integer iCount_i
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Use your previously obtained access token here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint).
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken
If (Not(IsComObjectCreated(hoJsonToken))) Begin
Send CreateComObject of hoJsonToken
End
Get ComLoadFile Of hoJsonToken "qa_data/tokens/outlookContacts.json" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJsonToken To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComStringOf Of hoJsonToken "access_token" To sTemp1
Set ComAuthToken Of hoHttp To sTemp1
// Send the following GET:
// GET https://graph.microsoft.com/v1.0/me/contacts
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJson
If (Not(IsComObjectCreated(hoSbJson))) Begin
Send CreateComObject of hoSbJson
End
Get pvComObject of hoSbJson to vSbJson
Get ComQuickGetSb Of hoHttp "https://graph.microsoft.com/v1.0/me/contacts" vSbJson To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComLastStatus Of hoHttp To iStatusCode
Showln "Response status code = " iStatusCode
If (iStatusCode <> 200) Begin
Get ComGetAsString Of hoSbJson To sTemp1
Showln sTemp1
Showln "Failed."
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbJson to vSbJson
Get ComLoadSb Of hoJResp vSbJson To iSuccess
Set ComEmitCompact Of hoJResp To False
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
// 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": {}
// },
// ...
// ]
// }
Get ComStringOf Of hoJResp '"@odata.context"' To sOdata_context
Move 0 To i
Get ComSizeOfArray Of hoJResp "value" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp 'value[i]."@odata.etag"' To sOdata_etag
Get ComStringOf Of hoJResp "value[i].id" To sId
Get ComStringOf Of hoJResp "value[i].createdDateTime" To sCreatedDateTime
Get ComStringOf Of hoJResp "value[i].lastModifiedDateTime" To sLastModifiedDateTime
Get ComStringOf Of hoJResp "value[i].changeKey" To sChangeKey
Get ComStringOf Of hoJResp "value[i].parentFolderId" To sParentFolderId
Get ComStringOf Of hoJResp "value[i].birthday" To sBirthday
Get ComStringOf Of hoJResp "value[i].fileAs" To sFileAs
Get ComStringOf Of hoJResp "value[i].displayName" To sDisplayName
Get ComStringOf Of hoJResp "value[i].givenName" To sGivenName
Get ComStringOf Of hoJResp "value[i].initials" To sInitials
Get ComStringOf Of hoJResp "value[i].middleName" To sMiddleName
Get ComStringOf Of hoJResp "value[i].nickName" To sNickName
Get ComStringOf Of hoJResp "value[i].surname" To sSurname
Get ComStringOf Of hoJResp "value[i].title" To sTitle
Get ComStringOf Of hoJResp "value[i].yomiGivenName" To sYomiGivenName
Get ComStringOf Of hoJResp "value[i].yomiSurname" To sYomiSurname
Get ComStringOf Of hoJResp "value[i].yomiCompanyName" To sYomiCompanyName
Get ComStringOf Of hoJResp "value[i].generation" To sGeneration
Get ComStringOf Of hoJResp "value[i].jobTitle" To sJobTitle
Get ComStringOf Of hoJResp "value[i].companyName" To sCompanyName
Get ComStringOf Of hoJResp "value[i].department" To sDepartment
Get ComStringOf Of hoJResp "value[i].officeLocation" To sOfficeLocation
Get ComStringOf Of hoJResp "value[i].profession" To sProfession
Get ComStringOf Of hoJResp "value[i].businessHomePage" To sBusinessHomePage
Get ComStringOf Of hoJResp "value[i].assistantName" To sAssistantName
Get ComStringOf Of hoJResp "value[i].manager" To sManager
Get ComStringOf Of hoJResp "value[i].mobilePhone" To sMobilePhone
Get ComStringOf Of hoJResp "value[i].spouseName" To sSpouseName
Get ComStringOf Of hoJResp "value[i].personalNotes" To sPersonalNotes
Move 0 To j
Get ComSizeOfArray Of hoJResp "value[i].categories" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "value[i].imAddresses" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "value[i].homePhones" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "value[i].businessPhones" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "value[i].businessPhones[j]" To sStrVal
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "value[i].children" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "value[i].emailAddresses" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "value[i].emailAddresses[j].name" To sName
Get ComStringOf Of hoJResp "value[i].emailAddresses[j].address" To sAddress
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
End_Procedure