Tcl
Tcl
Create Group
See more Microsoft Group Examples
Create a new group as specified in the request body. You can create one of three types of groups:- Office 365 Group (unified group)
- Dynamic group
- Security group
This operation returns by default only a subset of the properties for each group. These default properties are noted in the Properties section.
See https://docs.microsoft.com/en-us/graph/api/group-post-groups?view=graph-rest-1.0 for more information.
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Use your previously obtained access token as shown here:
# Get Microsoft Graph OAuth2 Access Token with Group.ReadWrite.All scope.
set jsonToken [new_CkJsonObject]
set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/msGraphGroup.json"]
if {$success == 0} then {
puts [CkJsonObject_lastErrorText $jsonToken]
delete_CkHttp $http
delete_CkJsonObject $jsonToken
exit
}
CkHttp_put_AuthToken $http [CkJsonObject_stringOf $jsonToken "access_token"]
# Create a JSON body for the HTTP POST
# Use this online tool to generate the code from sample JSON:
# Generate Code to Create JSON
# {
# "description": "Self help community for library",
# "displayName": "Library Assist",
# "groupTypes": [
# "Unified"
# ],
# "mailEnabled": true,
# "mailNickname": "library",
# "securityEnabled": false
# }
set json [new_CkJsonObject]
CkJsonObject_UpdateString $json "description" "Self help community for library"
CkJsonObject_UpdateString $json "displayName" "Library Assist"
CkJsonObject_UpdateString $json "groupTypes[0]" "Unified"
CkJsonObject_UpdateBool $json "mailEnabled" 1
CkJsonObject_UpdateString $json "mailNickname" "library"
CkJsonObject_UpdateBool $json "securityEnabled" 0
# POST the JSON to https://graph.microsoft.com/v1.0/groups
set resp [new_CkHttpResponse]
set success [CkHttp_HttpJson $http "POST" "https://graph.microsoft.com/v1.0/groups" $json "application/json" $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkJsonObject $jsonToken
delete_CkJsonObject $json
delete_CkHttpResponse $resp
exit
}
CkJsonObject_Load $json [CkHttpResponse_bodyStr $resp]
CkJsonObject_put_EmitCompact $json 0
if {[CkHttpResponse_get_StatusCode $resp] != 201} then {
puts [CkJsonObject_emit $json]
puts "Failed, response status code = [CkHttpResponse_get_StatusCode $resp]"
delete_CkHttp $http
delete_CkJsonObject $jsonToken
delete_CkJsonObject $json
delete_CkHttpResponse $resp
exit
}
puts [CkJsonObject_emit $json]
# A sample response:
# (See code for parsing this response below..)
# {
# "id": "b320ee12-b1cd-4cca-b648-a437be61c5cd",
# "deletedDateTime": null,
# "classification": null,
# "createdDateTime": "2018-12-22T00:51:37Z",
# "creationOptions": [],
# "description": "Self help community for library",
# "displayName": "Library Assist",
# "groupTypes": [
# "Unified"
# ],
# "mail": "library7423@contoso.com",
# "mailEnabled": true,
# "mailNickname": "library",
# "onPremisesLastSyncDateTime": null,
# "onPremisesSecurityIdentifier": null,
# "onPremisesSyncEnabled": null,
# "preferredDataLocation": "CAN",
# "proxyAddresses": [
# "SMTP:library7423@contoso.com"
# ],
# "renewedDateTime": "2018-12-22T00:51:37Z",
# "resourceBehaviorOptions": [],
# "resourceProvisioningOptions": [],
# "securityEnabled": false,
# "visibility": "Public",
# "onPremisesProvisioningErrors": []
# }
# Use this online tool to generate parsing code from sample JSON:
# Generate Parsing Code from JSON
set id [CkJsonObject_stringOf $json "id"]
set deletedDateTime [CkJsonObject_stringOf $json "deletedDateTime"]
set classification [CkJsonObject_stringOf $json "classification"]
set createdDateTime [CkJsonObject_stringOf $json "createdDateTime"]
set description [CkJsonObject_stringOf $json "description"]
set displayName [CkJsonObject_stringOf $json "displayName"]
set mail [CkJsonObject_stringOf $json "mail"]
set mailEnabled [CkJsonObject_BoolOf $json "mailEnabled"]
set mailNickname [CkJsonObject_stringOf $json "mailNickname"]
set onPremisesLastSyncDateTime [CkJsonObject_stringOf $json "onPremisesLastSyncDateTime"]
set onPremisesSecurityIdentifier [CkJsonObject_stringOf $json "onPremisesSecurityIdentifier"]
set onPremisesSyncEnabled [CkJsonObject_stringOf $json "onPremisesSyncEnabled"]
set preferredDataLocation [CkJsonObject_stringOf $json "preferredDataLocation"]
set renewedDateTime [CkJsonObject_stringOf $json "renewedDateTime"]
set securityEnabled [CkJsonObject_BoolOf $json "securityEnabled"]
set visibility [CkJsonObject_stringOf $json "visibility"]
set i 0
set count_i [CkJsonObject_SizeOfArray $json "creationOptions"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $json "groupTypes"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
set strVal [CkJsonObject_stringOf $json "groupTypes[i]"]
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $json "proxyAddresses"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
set strVal [CkJsonObject_stringOf $json "proxyAddresses[i]"]
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $json "resourceBehaviorOptions"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
# ...
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $json "resourceProvisioningOptions"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
# ...
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $json "onPremisesProvisioningErrors"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
# ...
set i [expr $i + 1]
}
puts "Success."
delete_CkHttp $http
delete_CkJsonObject $jsonToken
delete_CkJsonObject $json
delete_CkHttpResponse $resp