Xojo Plugin
Xojo Plugin
Microsoft Graph -- List Users
See more Microsoft Graph Examples
Retrieve a list of Microsoft Graph user objects.Chilkat Xojo Plugin Downloads
Dim success As Boolean
success = 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
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 Chilkat.HttpResponse
success = http.HttpReq(url,req,resp)
If (success = False) Then
System.DebugLog(http.LastErrorText)
Return
End If
Dim statusCode As Int32
statusCode = resp.StatusCode
System.DebugLog("Response status code = " + Str(statusCode))
Dim json As New Chilkat.JsonObject
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")
System.DebugLog("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
System.DebugLog(http.LastErrorText)
Return
End If
success = json.LoadSb(sbResponse)
json.EmitCompact = False
System.DebugLog("Status code = " + Str(http.LastStatus))
If (http.LastStatus <> 200) Then
System.DebugLog(json.Emit())
System.DebugLog("Failed.")
End If
System.DebugLog(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 Int32
Dim count_j As Int32
Dim odata_context As String
odata_context = json.StringOf("""@odata.context""")
Dim i As Int32
i = 0
Dim count_i As Int32
count_i = 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
Wend
i = i + 1
Wend