Sample code for 30+ languages & platforms
Visual Basic 6.0

Microsoft Graph -- List Users

See more Microsoft Graph Examples

Retrieve a list of Microsoft Graph user objects.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

' ------------------------------------------------------------------------------------------------------
' 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
Dim http As New ChilkatHttp
Dim req As New ChilkatHttpRequest
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
Dim url As String
url = "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token"

req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"

Dim resp As New ChilkatHttpResponse
success = http.HttpReq(url,req,resp)
If (success = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Dim statusCode As Long
statusCode = resp.StatusCode
Debug.Print "Response status code = " & statusCode

Dim json As New ChilkatJsonObject
success = 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.AuthToken = json.StringOf("access_token")

Debug.Print "access token: " & http.AuthToken

Dim sbResponse As New ChilkatStringBuilder

success = http.QuickGetSb("https://graph.microsoft.com/v1.0/users",sbResponse)
If (success = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

success = json.LoadSb(sbResponse)
json.EmitCompact = 0

Debug.Print "Status code = " & http.LastStatus
If (http.LastStatus <> 200) Then
    Debug.Print json.Emit()
    Debug.Print "Failed."
End If

Debug.Print 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

Dim odata_id As String
Dim displayName As String
Dim givenName As String
Dim jobTitle As String
Dim mail As String
Dim mobilePhone As String
Dim officeLocation As String
Dim preferredLanguage As String
Dim surname As String
Dim userPrincipalName As String
Dim id As String
Dim j As Long
Dim count_j As Long

Dim odata_context As String
odata_context = json.StringOf("""@odata.context""")
Dim i As Long
i = 0
Dim count_i As Long
count_i = json.SizeOfArray("value")
Do While i < count_i
    json.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")
    Do While j < count_j
        json.J = j
        j = j + 1
    Loop
    i = i + 1
Loop