Lua
Lua
List Groups
See more Microsoft Group Examples
List all the groups available in an organization, including but not limited to Office 365 Groups.See https://docs.microsoft.com/en-us/graph/api/group-list?view=graph-rest-1.0 for more information.
Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local http = chilkat.Http.new()
-- Use your previously obtained access token as shown here:
-- Get Microsoft Graph OAuth2 Access Token with Group.ReadWrite.All scope.
local jsonToken = chilkat.JsonObject.new()
local success = jsonToken:load_file("qa_data/tokens/msGraphGroup.json")
if not success then
print(jsonToken.last_error_text)
return
end
http.auth_token = jsonToken:string_of("access_token")
-- Send a GET request to https://graph.microsoft.com/v1.0/groups?$orderby=displayName
local strResponse = http:quick_get_str("https://graph.microsoft.com/v1.0/groups?$orderby=displayName")
if not http.last_method_success then
print(http.last_error_text)
return
end
local json = chilkat.JsonObject.new()
json:load(strResponse)
json.emit_compact = false
if http.last_status ~= 200 then
print(json:emit())
print("Failed, response status code = " .. http.last_status)
return
end
print(json:emit())
-- Sample output:
-- (See parsing code below..)
-- {
-- "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
-- "value": [
-- {
-- "id": "45b7d2e7-b882-4a80-ba97-10b7a63b8fa4",
-- "deletedDateTime": null,
-- "classification": null,
-- "createdDateTime": "2018-12-22T02:21:05Z",
-- "creationOptions": [],
-- "description": "Self help community for golf",
-- "displayName": "Golf Assist",
-- "groupTypes": [
-- "Unified"
-- ],
-- "mail": "golfassist@contoso.com",
-- "mailEnabled": true,
-- "mailNickname": "golfassist",
-- "onPremisesLastSyncDateTime": null,
-- "onPremisesSecurityIdentifier": null,
-- "onPremisesSyncEnabled": null,
-- "preferredDataLocation": "CAN",
-- "proxyAddresses": [
-- "smtp:golfassist@contoso.onmicrosoft.com",
-- "SMTP:golfassist@contoso.com"
-- ],
-- "renewedDateTime": "2018-12-22T02:21:05Z",
-- "resourceBehaviorOptions": [],
-- "resourceProvisioningOptions": [],
-- "securityEnabled": false,
-- "visibility": "Public",
-- "onPremisesProvisioningErrors": []
-- },
-- {
-- "id": "d7797254-3084-44d0-99c9-a3b5ab149538",
-- "deletedDateTime": null,
-- "classification": null,
-- "createdDateTime": "2018-11-19T20:29:40Z",
-- "creationOptions": [],
-- "description": "Talk about golf",
-- "displayName": "Golf Discussion",
-- "groupTypes": [],
-- "mail": "golftalk@contoso.com",
-- "mailEnabled": true,
-- "mailNickname": "golftalk",
-- "onPremisesLastSyncDateTime": null,
-- "onPremisesSecurityIdentifier": null,
-- "onPremisesSyncEnabled": null,
-- "preferredDataLocation": "CAN",
-- "proxyAddresses": [
-- "smtp:golftalk@contoso.onmicrosoft.com",
-- "SMTP:golftalk@contoso.com"
-- ],
-- "renewedDateTime": "2018-11-19T20:29:40Z",
-- "resourceBehaviorOptions": [],
-- "resourceProvisioningOptions": [],
-- "securityEnabled": false,
-- "visibility": null,
-- "onPremisesProvisioningErrors": []
-- }
-- ]
-- }
--
-- Use this online tool to generate parsing code from sample JSON:
-- Generate Parsing Code from JSON
local id = ""
local deletedDateTime = ""
local classification = ""
local createdDateTime = ""
local description = ""
local displayName = ""
local mail = ""
local mailEnabled = false
local mailNickname = ""
local onPremisesLastSyncDateTime = ""
local onPremisesSecurityIdentifier = ""
local onPremisesSyncEnabled = ""
local preferredDataLocation = ""
local renewedDateTime = ""
local securityEnabled = false
local visibility = ""
local j = 0
local count_j = 0
local strVal = ""
local odataContext = json:string_of("\"@odata.context\"")
local i = 0
local count_i = json:size_of_array("value")
while i < count_i do
json.i = i
id = json:string_of("value[i].id")
deletedDateTime = json:string_of("value[i].deletedDateTime")
classification = json:string_of("value[i].classification")
createdDateTime = json:string_of("value[i].createdDateTime")
description = json:string_of("value[i].description")
displayName = json:string_of("value[i].displayName")
mail = json:string_of("value[i].mail")
mailEnabled = json:bool_of("value[i].mailEnabled")
mailNickname = json:string_of("value[i].mailNickname")
onPremisesLastSyncDateTime = json:string_of("value[i].onPremisesLastSyncDateTime")
onPremisesSecurityIdentifier = json:string_of("value[i].onPremisesSecurityIdentifier")
onPremisesSyncEnabled = json:string_of("value[i].onPremisesSyncEnabled")
preferredDataLocation = json:string_of("value[i].preferredDataLocation")
renewedDateTime = json:string_of("value[i].renewedDateTime")
securityEnabled = json:bool_of("value[i].securityEnabled")
visibility = json:string_of("value[i].visibility")
j = 0
count_j = json:size_of_array("value[i].creationOptions")
while j < count_j do
json.j = j
-- ...
j = j + 1
end
j = 0
count_j = json:size_of_array("value[i].groupTypes")
while j < count_j do
json.j = j
strVal = json:string_of("value[i].groupTypes[j]")
j = j + 1
end
j = 0
count_j = json:size_of_array("value[i].proxyAddresses")
while j < count_j do
json.j = j
strVal = json:string_of("value[i].proxyAddresses[j]")
j = j + 1
end
j = 0
count_j = json:size_of_array("value[i].resourceBehaviorOptions")
while j < count_j do
json.j = j
-- ...
j = j + 1
end
j = 0
count_j = json:size_of_array("value[i].resourceProvisioningOptions")
while j < count_j do
json.j = j
-- ...
j = j + 1
end
j = 0
count_j = json:size_of_array("value[i].onPremisesProvisioningErrors")
while j < count_j do
json.j = j
-- ...
j = j + 1
end
i = i + 1
end
print("Success.")