Lianja
Lianja
Outlook List Contacts
See more Outlook Contact Examples
List Outlook ContactsChilkat Lianja Downloads
llSuccess = .F.
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loHttp = createobject("CkHttp")
// Use your previously obtained access token here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint).
loJsonToken = createobject("CkJsonObject")
llSuccess = loJsonToken.LoadFile("qa_data/tokens/outlookContacts.json")
if (llSuccess = .F.) then
? loJsonToken.LastErrorText
release loHttp
release loJsonToken
return
endif
loHttp.AuthToken = loJsonToken.StringOf("access_token")
// Send the following GET:
// GET https://graph.microsoft.com/v1.0/me/contacts
loSbJson = createobject("CkStringBuilder")
llSuccess = loHttp.QuickGetSb("https://graph.microsoft.com/v1.0/me/contacts",loSbJson)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loHttp
release loJsonToken
release loSbJson
return
endif
lnStatusCode = loHttp.LastStatus
? "Response status code = " + str(lnStatusCode)
if (lnStatusCode <> 200) then
? loSbJson.GetAsString()
? "Failed."
release loHttp
release loJsonToken
release loSbJson
return
endif
loJResp = createobject("CkJsonObject")
loJResp.LoadSb(loSbJson)
loJResp.EmitCompact = .F.
? loJResp.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": {}
// },
// ...
// ]
// }
lcOdata_context = loJResp.StringOf('"@odata.context"')
i = 0
lnCount_i = loJResp.SizeOfArray("value")
do while i < lnCount_i
loJResp.I = i
lcOdata_etag = loJResp.StringOf('value[i]."@odata.etag"')
lcId = loJResp.StringOf("value[i].id")
lcCreatedDateTime = loJResp.StringOf("value[i].createdDateTime")
lcLastModifiedDateTime = loJResp.StringOf("value[i].lastModifiedDateTime")
lcChangeKey = loJResp.StringOf("value[i].changeKey")
lcParentFolderId = loJResp.StringOf("value[i].parentFolderId")
lcBirthday = loJResp.StringOf("value[i].birthday")
lcFileAs = loJResp.StringOf("value[i].fileAs")
lcDisplayName = loJResp.StringOf("value[i].displayName")
lcGivenName = loJResp.StringOf("value[i].givenName")
lcInitials = loJResp.StringOf("value[i].initials")
lcMiddleName = loJResp.StringOf("value[i].middleName")
lcNickName = loJResp.StringOf("value[i].nickName")
lcSurname = loJResp.StringOf("value[i].surname")
lcTitle = loJResp.StringOf("value[i].title")
lcYomiGivenName = loJResp.StringOf("value[i].yomiGivenName")
lcYomiSurname = loJResp.StringOf("value[i].yomiSurname")
lcYomiCompanyName = loJResp.StringOf("value[i].yomiCompanyName")
lcGeneration = loJResp.StringOf("value[i].generation")
lcJobTitle = loJResp.StringOf("value[i].jobTitle")
lcCompanyName = loJResp.StringOf("value[i].companyName")
lcDepartment = loJResp.StringOf("value[i].department")
lcOfficeLocation = loJResp.StringOf("value[i].officeLocation")
lcProfession = loJResp.StringOf("value[i].profession")
lcBusinessHomePage = loJResp.StringOf("value[i].businessHomePage")
lcAssistantName = loJResp.StringOf("value[i].assistantName")
lcManager = loJResp.StringOf("value[i].manager")
lcMobilePhone = loJResp.StringOf("value[i].mobilePhone")
lcSpouseName = loJResp.StringOf("value[i].spouseName")
lcPersonalNotes = loJResp.StringOf("value[i].personalNotes")
j = 0
lnCount_j = loJResp.SizeOfArray("value[i].categories")
do while j < lnCount_j
loJResp.J = j
j = j + 1
enddo
j = 0
lnCount_j = loJResp.SizeOfArray("value[i].imAddresses")
do while j < lnCount_j
loJResp.J = j
j = j + 1
enddo
j = 0
lnCount_j = loJResp.SizeOfArray("value[i].homePhones")
do while j < lnCount_j
loJResp.J = j
j = j + 1
enddo
j = 0
lnCount_j = loJResp.SizeOfArray("value[i].businessPhones")
do while j < lnCount_j
loJResp.J = j
lcStrVal = loJResp.StringOf("value[i].businessPhones[j]")
j = j + 1
enddo
j = 0
lnCount_j = loJResp.SizeOfArray("value[i].children")
do while j < lnCount_j
loJResp.J = j
j = j + 1
enddo
j = 0
lnCount_j = loJResp.SizeOfArray("value[i].emailAddresses")
do while j < lnCount_j
loJResp.J = j
lcName = loJResp.StringOf("value[i].emailAddresses[j].name")
lcAddress = loJResp.StringOf("value[i].emailAddresses[j].address")
j = j + 1
enddo
i = i + 1
enddo
release loHttp
release loJsonToken
release loSbJson
release loJResp