Sample code for 30+ languages & platforms
Java

Microsoft Graph -- List Users

See more Microsoft Graph Examples

Retrieve a list of Microsoft Graph user objects.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpRequest;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        // ------------------------------------------------------------------------------------------------------
        // See an easier way to do OAuth2 client credentials:
        // Example using Automatic OAuth2 Client Credentials
        // ------------------------------------------------------------------------------------------------------

        // 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 http = new Http();
        HttpRequest req = new HttpRequest();
        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
        String url = "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token";

        req.setHttpVerb("POST");
        req.setContentType("application/x-www-form-urlencoded");

        HttpResponse resp = new HttpResponse();
        try {
            http.httpReq(url, req, resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        int statusCode = resp.getStatusCode();
        System.out.println("Response status code = " + statusCode);

        JsonObject json = new JsonObject();
        json.load(resp.getBodyStr());

        // -----------------------------------------------------
        // 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.setAuthToken(json.stringOf("access_token"));

        System.out.println("access token: " + http.getAuthToken());

        StringBuilder sbResponse = new StringBuilder();

        try {
            http.quickGetSb("https://graph.microsoft.com/v1.0/users", sbResponse);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        json.loadSb(sbResponse);
        json.setEmitCompact(false);

        System.out.println("Status code = " + http.getLastStatus());
        if (http.getLastStatus() != 200) {
            System.out.println(json.emit());
            System.out.println("Failed.");
        }

        System.out.println(json.emit());

        // 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

        String odata_id = "";
        String displayName = "";
        String givenName = "";
        String jobTitle = "";
        String mail = "";
        String mobilePhone = "";
        String officeLocation = "";
        String preferredLanguage = "";
        String surname = "";
        String userPrincipalName = "";
        String id = "";
        int j = 0;
        int count_j = 0;

        String odata_context = json.stringOf("\"@odata.context\"");
        int i = 0;
        int count_i = json.sizeOfArray("value");
        while (i < count_i) {
            json.setI(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.setJ(j);
                j = j + 1;
            }

            i = i + 1;
        }
    }
}