Добавляйте и удаляйте соавторов заметок с разрешениями
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Создатель заметки является ее владельцем. Владелец может добавлять других соавторов, используя разрешения, предоставленные отдельным пользователям или группам. Соавторы получают доступ к редактированию заметки. Соавторы также могут отозвать свои разрешения с помощью API. На этой странице объясняется, как добавлять и удалять соавторов с помощью разрешений.
Добавьте разрешения для добавления соавторов
В следующем примере показано, как использовать разрешения пользователя или группы для добавления соавторов к заметке:
ОТДЫХ
Вызовите Notes.permissions.batchCreate() с родительской заметкой, которой назначены разрешение и permission
. Обратите внимание, что участнику (пользователю, группе) может быть назначена только роль WRITER
.
Ява
/**
* Grants write access to a user and to a Google group for the given note.
*
* @param note The note whose permissions will be updated.
* @param userEmail Email address of the user that will be added to the permissions of the note.
* @param groupEmail Email address of the Google group that will be added to the permissions of
* the note.
* @throws IOException
* @return The response of the create permissions request.
*/
private BatchCreatePermissionsResponse addPermissions(
Note note, String userEmail, String groupEmail) throws IOException {
String noteName = note.getName();
CreatePermissionRequest userPermission =
new CreatePermissionRequest()
.setParent(noteName)
.setPermission(new Permission().setEmail(userEmail).setRole("WRITER"));
CreatePermissionRequest groupPermission =
new CreatePermissionRequest()
.setParent(noteName)
.setPermission(new Permission().setEmail(groupEmail).setRole("WRITER"));
BatchCreatePermissionsRequest batchCreatePermissionsRequest =
new BatchCreatePermissionsRequest()
.setRequests(Arrays.asList(userPermission, groupPermission));
return keepService
.notes()
.permissions()
.batchCreate(noteName, batchCreatePermissionsRequest)
.execute();
}
Отозвать разрешения на удаление соавторов
В следующем примере показано, как использовать разрешения для удаления всех соавторов из заметки:
Ява
/**
* Deletes all permissions of a given note excluding the owner. Owner of the note cannot be
* removed from a note's permissions.
*
* @param note The note whose permissions will be deleted.
* @throws IOException
*/
private void deletePermissions(Note note) throws IOException {
List<Permission> notePermissions =
keepService.notes().get(note.getName()).execute().getPermissions();
// List of users, groups or families that will be deleted from the permissions of the note.
List<String> permissionsToDelete = new ArrayList<>();
for (Permission permission : notePermissions) {
// Note owner cannot be removed from the permissions of the note. Trying to remove the note
// owner from the permissions will cause an exception.
if (!permission.getRole().equals("OWNER")) {
permissionsToDelete.add(permission.getName());
}
}
keepService
.notes()
.permissions()
.batchDelete(
note.getName(), new BatchDeletePermissionsRequest().setNames(permissionsToDelete))
.execute();
}
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-03-11 UTC.
[null,null,["Последнее обновление: 2025-03-11 UTC."],[],[],null,["# Add and remove note collaborators with permissions\n\nThe creator of a note is the owner of that note. The owner can add other\ncollaborators using permissions granted to individual users or groups.\nCollaborators gain edit access to the note. Collaborators can also have their\npermissions revoked using the API. This page explains how to add and delete\ncollaborators using permissions.\n\nAdd permissions to add collaborators\n------------------------------------\n\nThe following sample shows how to use permissions on a user or group to add\ncollaborators to a note: \n\n### REST\n\nCall\n[notes.permissions.batchCreate()](/workspace/keep/api/reference/rest/v1/notes.permissions/batchCreate)\nwith the parent note assigned the permission and `permission`. Note that the\nmember (user, group) can only be assigned the `WRITER` role.\n\n### Java\n\n /**\n * Grants write access to a user and to a Google group for the given note.\n *\n * @param note The note whose permissions will be updated.\n * @param userEmail Email address of the user that will be added to the permissions of the note.\n * @param groupEmail Email address of the Google group that will be added to the permissions of\n * the note.\n * @throws IOException\n * @return The response of the create permissions request.\n */\n private BatchCreatePermissionsResponse addPermissions(\n Note note, String userEmail, String groupEmail) throws IOException {\n String noteName = note.getName();\n CreatePermissionRequest userPermission =\n new CreatePermissionRequest()\n .setParent(noteName)\n .setPermission(new Permission().setEmail(userEmail).setRole(\"WRITER\"));\n\n CreatePermissionRequest groupPermission =\n new CreatePermissionRequest()\n .setParent(noteName)\n .setPermission(new Permission().setEmail(groupEmail).setRole(\"WRITER\"));\n\n BatchCreatePermissionsRequest batchCreatePermissionsRequest =\n new BatchCreatePermissionsRequest()\n .setRequests(Arrays.asList(userPermission, groupPermission));\n\n return keepService\n .notes()\n .permissions()\n .batchCreate(noteName, batchCreatePermissionsRequest)\n .execute();\n }\n\nRevoke permissions to remove collaborators\n------------------------------------------\n\nThe following sample shows how to use permissions to remove all collaborators\nfrom a note: \n\n### REST\n\nCall\n[notes.permissions.batchDelete()](/workspace/keep/api/reference/rest/v1/notes.permissions/batchDelete)\nwith the parent note assigned the permission and `permission`.\n\n### Java\n\n /**\n * Deletes all permissions of a given note excluding the owner. Owner of the note cannot be\n * removed from a note's permissions.\n *\n * @param note The note whose permissions will be deleted.\n * @throws IOException\n */\n private void deletePermissions(Note note) throws IOException {\n List\u003cPermission\u003e notePermissions =\n keepService.notes().get(note.getName()).execute().getPermissions();\n\n // List of users, groups or families that will be deleted from the permissions of the note.\n List\u003cString\u003e permissionsToDelete = new ArrayList\u003c\u003e();\n\n for (Permission permission : notePermissions) {\n // Note owner cannot be removed from the permissions of the note. Trying to remove the note\n // owner from the permissions will cause an exception.\n if (!permission.getRole().equals(\"OWNER\")) {\n permissionsToDelete.add(permission.getName());\n }\n }\n\n keepService\n .notes()\n .permissions()\n .batchDelete(\n note.getName(), new BatchDeletePermissionsRequest().setNames(permissionsToDelete))\n .execute();\n }"]]