Class Protection

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Защита

Доступ и изменение защищенных диапазонов и листов. Защищенный диапазон может защищать либо статический диапазон ячеек, либо именованный диапазон. Защищенный лист может включать незащищенные области. Для электронных таблиц, созданных в старой версии Google Sheets, вместо этого используйте класс PageProtection .

// Protect range A1:B10, then remove all other users from the list of editors.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect().setDescription('Sample protected range');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}
// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}
// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

Методы

Метод Тип возврата Краткое описание
addEditor(emailAddress) Protection Добавляет данного пользователя в список редакторов защищенного листа или диапазона.
addEditor(user) Protection Добавляет данного пользователя в список редакторов защищенного листа или диапазона.
addEditors(emailAddresses) Protection Добавляет заданный массив пользователей в список редакторов защищенного листа или диапазона.
addTargetAudience(audienceId) Protection Добавляет указанную целевую аудиторию в качестве редактора защищенного диапазона.
canDomainEdit() Boolean Определяет, имеют ли все пользователи в домене, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа.
canEdit() Boolean Определяет, есть ли у пользователя разрешение на редактирование защищенного диапазона или листа.
getDescription() String Получает описание защищенного диапазона или листа.
getEditors() User[] Получает список редакторов для защищенного диапазона или листа.
getProtectionType() ProtectionType Получает тип защищенной области: RANGE или SHEET .
getRange() Range Получает защищаемый диапазон.
getRangeName() String Получает имя защищенного диапазона, если он связан с именованным диапазоном.
getTargetAudiences() TargetAudience[] Возвращает идентификаторы целевых аудиторий, которые могут редактировать защищенный диапазон.
getUnprotectedRanges() Range[] Получает массив незащищенных диапазонов на защищенном листе.
isWarningOnly() Boolean Определяет, использует ли защищенная область защиту на основе предупреждений.
remove() void Снимает защиту с диапазона или листа.
removeEditor(emailAddress) Protection Удаляет данного пользователя из списка редакторов защищенного листа или диапазона.
removeEditor(user) Protection Удаляет данного пользователя из списка редакторов защищенного листа или диапазона.
removeEditors(emailAddresses) Protection Удаляет указанный массив пользователей из списка редакторов защищенного листа или диапазона.
removeTargetAudience(audienceId) Protection Удаляет указанную целевую аудиторию в качестве редактора защищенного диапазона.
setDescription(description) Protection Задает описание защищенного диапазона или листа.
setDomainEdit(editable) Protection Определяет, имеют ли все пользователи в домене, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа.
setNamedRange(namedRange) Protection Связывает защищенный диапазон с существующим именованным диапазоном.
setRange(range) Protection Регулирует защищаемый диапазон.
setRangeName(rangeName) Protection Связывает защищенный диапазон с существующим именованным диапазоном.
setUnprotectedRanges(ranges) Protection Снимает защиту с заданного массива диапазонов на защищенном листе.
setWarningOnly(warningOnly) Protection Устанавливает, использует ли этот защищенный диапазон защиту на основе предупреждений.

Подробная документация

addEditor(emailAddress)

Добавляет данного пользователя в список редакторов защищенного листа или диапазона. Этот метод не дает пользователю автоматически права редактировать саму электронную таблицу; для этого вызовите Spreadsheet.addEditor(emailAddress) .

Параметры

Имя Тип Описание
emailAddress String Адрес электронной почты добавляемого пользователя.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addEditor(user)

Добавляет данного пользователя в список редакторов защищенного листа или диапазона. Этот метод не дает пользователю автоматически права редактировать саму электронную таблицу; для этого вызовите Spreadsheet.addEditor(user) .

Параметры

Имя Тип Описание
user User Представление пользователя для добавления.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addEditors(emailAddresses)

Добавляет заданный массив пользователей в список редакторов защищенного листа или диапазона. Этот метод не дает пользователям автоматически разрешения на редактирование самой электронной таблицы; для этого вызовите Spreadsheet.addEditors(emailAddresses) .

Параметры

Имя Тип Описание
emailAddresses String[] Массив адресов электронной почты пользователей для добавления.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addTargetAudience(audienceId)

Добавляет указанную целевую аудиторию в качестве редактора защищенного диапазона.

Параметры

Имя Тип Описание
audienceId String Идентификатор целевой аудитории для добавления.

Возвращаться

Protection — Объект, представляющий параметры защиты для цепочки.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

canDomainEdit()

Определяет, имеют ли все пользователи в домене, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. Выдает исключение, если у пользователя нет разрешения на редактирование защищенного диапазона или листа.

Возвращаться

Boolean — значение true , если все пользователи в домене, которому принадлежит электронная таблица, имеют разрешение на редактирование защищенного диапазона или листа; false , если нет

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

canEdit()

Определяет, есть ли у пользователя разрешение на редактирование защищенного диапазона или листа. Владелец электронной таблицы всегда может редактировать защищенные диапазоны и листы.

// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}

Возвращаться

Booleantrue , если у пользователя есть разрешение на редактирование защищенного диапазона или листа; false , если нет

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getDescription()

Получает описание защищенного диапазона или листа. Если описание не задано, этот метод возвращает пустую строку.

Возвращаться

String — описание защищаемого диапазона или листа, или пустая строка, если описание не задано.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getEditors()

Получает список редакторов для защищенного диапазона или листа. Выдает исключение, если у пользователя нет разрешения на редактирование защищенного диапазона или листа.

// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

Возвращаться

User[] — массив пользователей с правами на редактирование защищенного диапазона или листа

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getProtectionType()

Получает тип защищенной области: RANGE или SHEET .

Возвращаться

ProtectionType — тип защищаемой области, RANGE или SHEET .

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

Получает защищаемый диапазон. Если защита применяется к листу, а не к диапазону, этот метод возвращает диапазон, охватывающий весь лист.

Возвращаться

Range — защищаемый диапазон

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRangeName()

Получает имя защищенного диапазона, если он связан с именованным диапазоном. Возвращает null , если защита не связана с именованным диапазоном. Обратите внимание, что сценарии должны явно вызывать setRangeName(rangeName) , чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect() для создания защиты из Range , который является именованным диапазоном, без вызова setRangeName(rangeName) недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Таблиц связывает их автоматически.

// Protect a named range in a spreadsheet and log the name of the protected range.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect();
ss.setNamedRange('Test', range);       // Create a named range.
protection.setRangeName('Test');       // Associate the protection with the named range.
Logger.log(protection.getRangeName()); // Verify the name of the protected range.

Возвращаться

String — имя защищенного именованного диапазона или null , если защищенный диапазон не связан с именованным диапазоном.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getTargetAudiences()

Возвращает идентификаторы целевых аудиторий, которые могут редактировать защищенный диапазон.

Возвращаться

TargetAudience[] — массив идентификаторов целевых аудиторий.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getUnprotectedRanges()

Получает массив незащищенных диапазонов на защищенном листе. Если объект Protection соответствует защищенному диапазону, а не защищенному листу, этот метод возвращает пустой массив. Чтобы изменить незащищенные диапазоны, используйте setUnprotectedRanges(ranges) для установки нового массива диапазонов; для повторной защиты всего листа установите пустой массив.

// Unprotect cells E2:F5 in addition to any other unprotected ranges in the protected sheet.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect();
var unprotected = protection.getUnprotectedRanges();
unprotected.push(sheet.getRange('E2:F5'));
protection.setUnprotectedRanges(unprotected);

Возвращаться

Range[] — массив незащищенных диапазонов на защищенном листе

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

isWarningOnly()

Определяет, использует ли защищенная область защиту на основе предупреждений. Защита на основе предупреждений означает, что каждый пользователь может редактировать данные в области, за исключением того, что при редактировании появляется предупреждение с просьбой подтвердить редактирование. По умолчанию защищенные диапазоны или листы не основаны на предупреждениях. Чтобы перейти в состояние предупреждения, используйте setWarningOnly(warningOnly) .

Возвращаться

Boolean — значение true , если защищенный диапазон или лист использует только защиту на основе предупреждений.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

remove()

Снимает защиту с диапазона или листа.

// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}
// Remove sheet protection from the active sheet, if the user has permission to edit it.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
if (protection && protection.canEdit()) {
  protection.remove();
}

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditor(emailAddress)

Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. Обратите внимание: если пользователь является членом группы Google, у которой есть разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, пользователь по-прежнему может редактировать защищенную область. Ни владелец электронной таблицы, ни текущий пользователь не могут быть удалены.

Параметры

Имя Тип Описание
emailAddress String Адрес электронной почты пользователя, которого необходимо удалить.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditor(user)

Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. Обратите внимание: если пользователь является членом группы Google, у которой есть разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, пользователь по-прежнему может редактировать защищенную область. Ни владелец электронной таблицы, ни текущий пользователь не могут быть удалены.

Параметры

Имя Тип Описание
user User Представление пользователя, которого необходимо удалить.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditors(emailAddresses)

Удаляет указанный массив пользователей из списка редакторов защищенного листа или диапазона. Обратите внимание, что если кто-либо из пользователей является членом группы Google, у которой есть разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, эти пользователи по-прежнему могут редактировать защищенную область. Ни владелец электронной таблицы, ни текущий пользователь не могут быть удалены.

// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

Параметры

Имя Тип Описание
emailAddresses String[] Массив адресов электронной почты пользователей, которых нужно удалить.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeTargetAudience(audienceId)

Удаляет указанную целевую аудиторию в качестве редактора защищенного диапазона.

Параметры

Имя Тип Описание
audienceId String ID целевой аудитории, которую необходимо удалить.

Возвращаться

Protection — Объект, представляющий параметры защиты для цепочки.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setDescription(description)

Задает описание защищенного диапазона или листа.

Параметры

Имя Тип Описание
description String Описание защищаемого диапазона или листа.

Возвращаться

Protection — Объект, представляющий параметры защиты для цепочки.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setDomainEdit(editable)

Определяет, имеют ли все пользователи в домене, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. Обратите внимание, что любые пользователи с явным разрешением на редактирование могут редактировать защищенную область независимо от этого параметра. Создает исключение, если электронная таблица не принадлежит домену Google Workspace (то есть если она принадлежит учетной записи gmail.com).

Параметры

Имя Тип Описание
editable Boolean true , если все пользователи в домене, которому принадлежит электронная таблица, должны иметь разрешение на редактирование защищенного диапазона или листа; false , если нет.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setNamedRange(namedRange)

Связывает защищенный диапазон с существующим именованным диапазоном. Если именованный диапазон покрывает область, отличную от текущего защищенного диапазона, этот метод вместо этого перемещает защиту, чтобы покрыть именованный диапазон. Именованный диапазон должен находиться на том же листе, что и текущий защищенный диапазон. Обратите внимание, что сценарии должны явно вызывать этот метод, чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect() для создания защиты из Range , который является именованным диапазоном, без вызова setRangeName(rangeName) недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Таблиц связывает их автоматически.

Параметры

Имя Тип Описание
namedRange NamedRange Существующий именованный диапазон для связи с защищенным диапазоном.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRange(range)

Регулирует защищаемый диапазон. Если данный диапазон покрывает область, отличную от текущего защищенного диапазона, этот метод вместо этого перемещает защиту, чтобы покрыть новый диапазон.

Параметры

Имя Тип Описание
range Range Новый диапазон для защиты от правок.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRangeName(rangeName)

Связывает защищенный диапазон с существующим именованным диапазоном. Если именованный диапазон покрывает область, отличную от текущего защищенного диапазона, этот метод вместо этого перемещает защиту, чтобы покрыть именованный диапазон. Именованный диапазон должен находиться на том же листе, что и текущий защищенный диапазон. Обратите внимание, что сценарии должны явно вызывать этот метод, чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect() для создания защиты из Range , который является именованным диапазоном, без вызова setRangeName(rangeName) недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Таблиц связывает их автоматически.

// Protect a named range in a spreadsheet and log the name of the protected range.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect();
ss.setNamedRange('Test', range);       // Create a named range.
protection.setRangeName('Test');       // Associate the protection with the named range.
Logger.log(protection.getRangeName()); // Verify the name of the protected range.

Параметры

Имя Тип Описание
rangeName String Имя именованного диапазона для защиты.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setUnprotectedRanges(ranges)

Снимает защиту с заданного массива диапазонов на защищенном листе. Выдает исключение, если объект Protection соответствует защищенному диапазону вместо защищенного листа или если какой-либо из диапазонов не находится на защищенном листе. Чтобы изменить незащищенные диапазоны, задайте новый массив диапазонов; для повторной защиты всего листа установите пустой массив.

// Protect the active sheet except B2:C5, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');
var unprotected = sheet.getRange('B2:C5');
protection.setUnprotectedRanges([unprotected]);

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

Параметры

Имя Тип Описание
ranges Range[] Массив диапазонов, которые нужно оставить незащищенными на защищенном листе.

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setWarningOnly(warningOnly)

Устанавливает, использует ли этот защищенный диапазон защиту на основе предупреждений. Защита на основе предупреждений означает, что каждый пользователь может редактировать данные в области, за исключением того, что при редактировании появляется предупреждение с просьбой подтвердить редактирование. По умолчанию защищенные диапазоны или листы не основаны на предупреждениях. Чтобы проверить состояние предупреждения, используйте isWarningOnly() .

Параметры

Имя Тип Описание
warningOnly Boolean

Возвращаться

Protection — объект, представляющий параметры защиты, для объединения в цепочку.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets