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
(PHP Extension) 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
<?php // The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number. // For example, if using Chilkat v9.5.0.48, then include as shown here: include("chilkat_9_5_0.php"); // 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 = new CkHttp(); $req = new CkHttpRequest(); $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 CkHttpResponse $resp = $http->PostUrlEncoded($url,$req); if ($http->get_LastMethodSuccess() != true) { print $http->lastErrorText() . "\n"; exit; } $statusCode = $resp->get_StatusCode(); print 'Response status code = ' . $statusCode . "\n"; $json = new CkJsonObject(); $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() . "\n"; $sbResponse = new CkStringBuilder(); $success = $http->QuickGetSb('https://graph.microsoft.com/v1.0/users',$sbResponse); if ($success != true) { print $http->lastErrorText() . "\n"; exit; } $json->LoadSb($sbResponse); $json->put_EmitCompact(false); print 'Status code = ' . $http->get_LastStatus() . "\n"; if ($http->get_LastStatus() != 200) { print $json->emit() . "\n"; print 'Failed.' . "\n"; } print $json->emit() . "\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.