To share a file or folder with a group of users, create a collaboration using
the group ID, the ID of the file or folder, and the role or permissions level
the group should have when accessing the file or folder.
BoxCollaborator group = new BoxGroup(api, "group-id");
BoxFolder folder = new BoxFolder(api, "folder-id");
folder.collaborate(group, BoxCollaboration.Role.EDITOR);
// collaborate folder 11111 with group 333333
BoxCollaborationRequest requestParams = new BoxCollaborationRequest()
{
Item = new BoxRequestEntity()
{
Type = BoxType.folder,
Id = "11111"
},
Role = "editor",
AccessibleBy = new BoxCollaborationUserRequest()
{
Type = BoxType.group,
Id = "333333"
}
};
BoxCollaboration collab = await client.CollaborationsManager.AddCollaborationAsync(requestParams);
client.collaborations.create(
itemType: "folder",
itemId: "22222",
role: .editor,
accessibleBy: "44444",
accessibleByType: .group
) { (result: Result<Collaboration, BoxSDKError>) in
guard case let .success(collaboration) = result else {
print("Error creating collaboration")
return
}
print("Collaboration successfully created")
}
The collaboration roles are editor, viewer, previewer, uploader,
previewer uploader, viewer uploader, co-owner, or owner. For a full
description of each role, please refer to our support documentation.
When creating a collaboration there are two nested objects within the request
body: accessible_by and item.
The accessible_by object specifies who the item should be shared with and
includes a group id and the type. The type field should always be set to
group.
The item object specifies what is being shared. It includes a type field
which should be set as file or folder, and an id for that file or folder.