Visual Basic 6.0
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
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