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) Microsoft Graph -- List UsersSee more Microsoft Graph ExamplesRetrieve a list of Microsoft Graph user objects. For more information, see https://docs.microsoft.com/en-us/graph/api/user-list?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. # Get an access token with the required scope using client credentials... # See How to Create Microsoft Graph App (in Azure Portal) for Client Credentials Authentication set http [new_CkHttp] set req [new_CkHttpRequest] CkHttpRequest_AddParam $req "client_secret" "CLIENT_SECRET" CkHttpRequest_AddParam $req "client_id" "CLIENT_ID" CkHttpRequest_AddParam $req "scope" "https://graph.microsoft.com/.default" CkHttpRequest_AddParam $req "grant_type" "client_credentials" # Use your own tenant ID, for example 4d8fdd66-66d1-43b0-ae5c-e31b4b7de5cd set url "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token" # resp is a CkHttpResponse set resp [CkHttp_PostUrlEncoded $http $url $req] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkHttpRequest $req exit } set statusCode [CkHttpResponse_get_StatusCode $resp] puts "Response status code = $statusCode" set json [new_CkJsonObject] CkJsonObject_Load $json [CkHttpResponse_bodyStr $resp] delete_CkHttpResponse $resp # ----------------------------------------------------- # Use the access token obtained from above. # Note: We don't need to re-fetch a new access token every time. An access token is valid # for some amount of time, typically an hour (3600 seconds) # Use your previously obtained access token here: CkHttp_put_AuthToken $http [CkJsonObject_stringOf $json "access_token"] puts "access token: [CkHttp_authToken $http]" set sbResponse [new_CkStringBuilder] set success [CkHttp_QuickGetSb $http "https://graph.microsoft.com/v1.0/users" $sbResponse] if {$success != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkHttpRequest $req delete_CkJsonObject $json delete_CkStringBuilder $sbResponse exit } CkJsonObject_LoadSb $json $sbResponse CkJsonObject_put_EmitCompact $json 0 puts "Status code = [CkHttp_get_LastStatus $http]" if {[CkHttp_get_LastStatus $http] != 200} then { puts [CkJsonObject_emit $json] puts "Failed." } puts [CkJsonObject_emit $json] # Sample output # { # "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users", # "value": [ # { # "@odata.id": "https://graph.microsoft.com/v2/6d8ddd66-68d1-43b0-af5c-e31b4b7dd5cd/directoryObjects/fca490d8-5918-4201-8079-c5dcbeafcdc9/Microsoft.DirectoryServices.User", # "businessPhones": [ # ], # "displayName": "Joe Sample", # "givenName": "Joe", # "jobTitle": null, # "mail": null, # "mobilePhone": null, # "officeLocation": null, # "preferredLanguage": null, # "surname": "Sample", # "userPrincipalName": "admin_chilkatsoft.com#EXT#@adminchilkatsoft.onmicrosoft.com", # "id": "fca490d8-5918-4201-8079-c5dcbeafcdc9" # } # ] # } # Use this online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON set odata_context [CkJsonObject_stringOf $json "\"@odata.context\""] set i 0 set count_i [CkJsonObject_SizeOfArray $json "value"] while {$i < $count_i} { CkJsonObject_put_I $json $i set odata_id [CkJsonObject_stringOf $json "value[i].\"@odata.id\""] set displayName [CkJsonObject_stringOf $json "value[i].displayName"] set givenName [CkJsonObject_stringOf $json "value[i].givenName"] set jobTitle [CkJsonObject_stringOf $json "value[i].jobTitle"] set mail [CkJsonObject_stringOf $json "value[i].mail"] set mobilePhone [CkJsonObject_stringOf $json "value[i].mobilePhone"] set officeLocation [CkJsonObject_stringOf $json "value[i].officeLocation"] set preferredLanguage [CkJsonObject_stringOf $json "value[i].preferredLanguage"] set surname [CkJsonObject_stringOf $json "value[i].surname"] set userPrincipalName [CkJsonObject_stringOf $json "value[i].userPrincipalName"] set id [CkJsonObject_stringOf $json "value[i].id"] set j 0 set count_j [CkJsonObject_SizeOfArray $json "value[i].businessPhones"] while {$j < $count_j} { CkJsonObject_put_J $json $j set j [expr $j + 1] } set i [expr $i + 1] } delete_CkHttp $http delete_CkHttpRequest $req delete_CkJsonObject $json delete_CkStringBuilder $sbResponse |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.