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
(Perl) 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
use chilkat(); # 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 $http = chilkat::CkHttp->new(); $req = chilkat::CkHttpRequest->new(); $req->AddParam("client_secret","CLIENT_SECRET"); $req->AddParam("client_id","CLIENT_ID"); $req->AddParam("scope","https://graph.microsoft.com/.default"); $req->AddParam("grant_type","client_credentials"); # Use your own tenant ID, for example 4d8fdd66-66d1-43b0-ae5c-e31b4b7de5cd $url = "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token"; # resp is a HttpResponse $resp = $http->PostUrlEncoded($url,$req); if ($http->get_LastMethodSuccess() != 1) { print $http->lastErrorText() . "\r\n"; exit; } $statusCode = $resp->get_StatusCode(); print "Response status code = " . $statusCode . "\r\n"; $json = chilkat::CkJsonObject->new(); $json->Load($resp->bodyStr()); # ----------------------------------------------------- # 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: $http->put_AuthToken($json->stringOf("access_token")); print "access token: " . $http->authToken() . "\r\n"; $sbResponse = chilkat::CkStringBuilder->new(); $success = $http->QuickGetSb("https://graph.microsoft.com/v1.0/users",$sbResponse); if ($success != 1) { print $http->lastErrorText() . "\r\n"; exit; } $json->LoadSb($sbResponse); $json->put_EmitCompact(0); print "Status code = " . $http->get_LastStatus() . "\r\n"; if ($http->get_LastStatus() != 200) { print $json->emit() . "\r\n"; print "Failed." . "\r\n"; } print $json->emit() . "\r\n"; # 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 $odata_context = $json->stringOf('\'@odata.context\''); $i = 0; $count_i = $json->SizeOfArray("value"); while ($i < $count_i) { $json->put_I($i); $odata_id = $json->stringOf('value[i].\'@odata.id\''); $displayName = $json->stringOf("value[i].displayName"); $givenName = $json->stringOf("value[i].givenName"); $jobTitle = $json->stringOf("value[i].jobTitle"); $mail = $json->stringOf("value[i].mail"); $mobilePhone = $json->stringOf("value[i].mobilePhone"); $officeLocation = $json->stringOf("value[i].officeLocation"); $preferredLanguage = $json->stringOf("value[i].preferredLanguage"); $surname = $json->stringOf("value[i].surname"); $userPrincipalName = $json->stringOf("value[i].userPrincipalName"); $id = $json->stringOf("value[i].id"); $j = 0; $count_j = $json->SizeOfArray("value[i].businessPhones"); while ($j < $count_j) { $json->put_J($j); $j = $j + 1; } $i = $i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.