Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Outlook List ContactsSee more Outlook Contact ExamplesList Outlook Contacts For more information, see https://docs.microsoft.com/en-us/graph/api/user-list-contacts?view=graph-rest-1.0&tabs=http
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] # Use your previously obtained access token here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint). set jsonToken [new_CkJsonObject] set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/outlookContacts.json"] if {$success == 0} then { puts [CkJsonObject_lastErrorText $jsonToken] delete_CkHttp $http delete_CkJsonObject $jsonToken exit } CkHttp_put_AuthToken $http [CkJsonObject_stringOf $jsonToken "access_token"] # Send the following GET: # GET https://graph.microsoft.com/v1.0/me/contacts set sbJson [new_CkStringBuilder] set success [CkHttp_QuickGetSb $http "https://graph.microsoft.com/v1.0/me/contacts" $sbJson] if {$success == 0} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkStringBuilder $sbJson exit } set statusCode [CkHttp_get_LastStatus $http] puts "Response status code = $statusCode" if {$statusCode != 200} then { puts [CkStringBuilder_getAsString $sbJson] puts "Failed." delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkStringBuilder $sbJson exit } set jResp [new_CkJsonObject] CkJsonObject_LoadSb $jResp $sbJson CkJsonObject_put_EmitCompact $jResp 0 puts [CkJsonObject_emit $jResp] # 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": {} # }, # ... # ] # } set odata_context [CkJsonObject_stringOf $jResp "\"@odata.context\""] set i 0 set count_i [CkJsonObject_SizeOfArray $jResp "value"] while {$i < $count_i} { CkJsonObject_put_I $jResp $i set odata_etag [CkJsonObject_stringOf $jResp "value[i].\"@odata.etag\""] set id [CkJsonObject_stringOf $jResp "value[i].id"] set createdDateTime [CkJsonObject_stringOf $jResp "value[i].createdDateTime"] set lastModifiedDateTime [CkJsonObject_stringOf $jResp "value[i].lastModifiedDateTime"] set changeKey [CkJsonObject_stringOf $jResp "value[i].changeKey"] set parentFolderId [CkJsonObject_stringOf $jResp "value[i].parentFolderId"] set birthday [CkJsonObject_stringOf $jResp "value[i].birthday"] set fileAs [CkJsonObject_stringOf $jResp "value[i].fileAs"] set displayName [CkJsonObject_stringOf $jResp "value[i].displayName"] set givenName [CkJsonObject_stringOf $jResp "value[i].givenName"] set initials [CkJsonObject_stringOf $jResp "value[i].initials"] set middleName [CkJsonObject_stringOf $jResp "value[i].middleName"] set nickName [CkJsonObject_stringOf $jResp "value[i].nickName"] set surname [CkJsonObject_stringOf $jResp "value[i].surname"] set title [CkJsonObject_stringOf $jResp "value[i].title"] set yomiGivenName [CkJsonObject_stringOf $jResp "value[i].yomiGivenName"] set yomiSurname [CkJsonObject_stringOf $jResp "value[i].yomiSurname"] set yomiCompanyName [CkJsonObject_stringOf $jResp "value[i].yomiCompanyName"] set generation [CkJsonObject_stringOf $jResp "value[i].generation"] set jobTitle [CkJsonObject_stringOf $jResp "value[i].jobTitle"] set companyName [CkJsonObject_stringOf $jResp "value[i].companyName"] set department [CkJsonObject_stringOf $jResp "value[i].department"] set officeLocation [CkJsonObject_stringOf $jResp "value[i].officeLocation"] set profession [CkJsonObject_stringOf $jResp "value[i].profession"] set businessHomePage [CkJsonObject_stringOf $jResp "value[i].businessHomePage"] set assistantName [CkJsonObject_stringOf $jResp "value[i].assistantName"] set manager [CkJsonObject_stringOf $jResp "value[i].manager"] set mobilePhone [CkJsonObject_stringOf $jResp "value[i].mobilePhone"] set spouseName [CkJsonObject_stringOf $jResp "value[i].spouseName"] set personalNotes [CkJsonObject_stringOf $jResp "value[i].personalNotes"] set j 0 set count_j [CkJsonObject_SizeOfArray $jResp "value[i].categories"] while {$j < $count_j} { CkJsonObject_put_J $jResp $j set j [expr $j + 1] } set j 0 set count_j [CkJsonObject_SizeOfArray $jResp "value[i].imAddresses"] while {$j < $count_j} { CkJsonObject_put_J $jResp $j set j [expr $j + 1] } set j 0 set count_j [CkJsonObject_SizeOfArray $jResp "value[i].homePhones"] while {$j < $count_j} { CkJsonObject_put_J $jResp $j set j [expr $j + 1] } set j 0 set count_j [CkJsonObject_SizeOfArray $jResp "value[i].businessPhones"] while {$j < $count_j} { CkJsonObject_put_J $jResp $j set strVal [CkJsonObject_stringOf $jResp "value[i].businessPhones[j]"] set j [expr $j + 1] } set j 0 set count_j [CkJsonObject_SizeOfArray $jResp "value[i].children"] while {$j < $count_j} { CkJsonObject_put_J $jResp $j set j [expr $j + 1] } set j 0 set count_j [CkJsonObject_SizeOfArray $jResp "value[i].emailAddresses"] while {$j < $count_j} { CkJsonObject_put_J $jResp $j set name [CkJsonObject_stringOf $jResp "value[i].emailAddresses[j].name"] set address [CkJsonObject_stringOf $jResp "value[i].emailAddresses[j].address"] set j [expr $j + 1] } set i [expr $i + 1] } delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkStringBuilder $sbJson delete_CkJsonObject $jResp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.