VB.NET
VB.NET
Microsoft Graph -- List Users
See more Microsoft Graph Examples
Retrieve a list of Microsoft Graph user objects.Chilkat VB.NET Downloads
Dim success As Boolean = False
' ------------------------------------------------------------------------------------------------------
' 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 Chilkat.Http
Dim req As New Chilkat.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
Dim url As String = "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token"
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
Dim resp As New Chilkat.HttpResponse
success = http.HttpReq(url,req,resp)
If (success = False) Then
Debug.WriteLine(http.LastErrorText)
Exit Sub
End If
Dim statusCode As Integer = resp.StatusCode
Debug.WriteLine("Response status code = " & statusCode)
Dim json As New Chilkat.JsonObject
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.WriteLine("access token: " & http.AuthToken)
Dim sbResponse As New Chilkat.StringBuilder
success = http.QuickGetSb("https://graph.microsoft.com/v1.0/users",sbResponse)
If (success = False) Then
Debug.WriteLine(http.LastErrorText)
Exit Sub
End If
json.LoadSb(sbResponse)
json.EmitCompact = False
Debug.WriteLine("Status code = " & http.LastStatus)
If (http.LastStatus <> 200) Then
Debug.WriteLine(json.Emit())
Debug.WriteLine("Failed.")
End If
Debug.WriteLine(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 Integer
Dim count_j As Integer
Dim odata_context As String = json.StringOf("""@odata.context""")
Dim i As Integer = 0
Dim count_i As Integer = json.SizeOfArray("value")
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")
While j < count_j
json.J = j
j = j + 1
End While
i = i + 1
End While