1

Я пытаюсь написать пользовательскую функцию для электронной таблицы google, но я столкнулся с ошибками разрешения слева и справа. Чтобы начать все, я набрал это в верхнюю левую ячейку: "=testFunction()". В функции, я попытался выделить и выбрать строку, основанную на пользователе, и пришел по следующим вопросам:Google Spreadsheet Пользовательские разрешения функций

  1. у меня нет разрешения на вызов метода Session.getActiveUser(), так что я ничего не могу сделать на основе доступа пользователя к документу. Кроме того, функция getUrl не возвращает фактический URL-адрес, поэтому добавление чего-то типа «#Jeff» в конце не будет работать. Примечание: в конце концов я обошел это, потому что, к моему удивлению, работает функция Spreadsheet.getViewers.
  2. У меня нет разрешения на выполнение функции Spreadsheet.setActiveSelection(), поэтому я не могу выбрать строку.
  3. У меня нет разрешения на изменение фона для ячейки B, если я запускаю функцию из ячейки A. Это означает, что мне нужно поместить мою функцию разбитого выделения в каждую ячейку, которую я хочу изменить.

Неудачно искать, как это сделать, протестировать его и посмотреть, как ошибка разрешения появляется три раза в четыре раза. Учитывая, что я являюсь владельцем этого документа, есть ли способ изменить то, что у меня есть разрешение? Если нет, есть ли какая-либо документация о том, какие функции я могу запустить?

+0

Связанные: http://stackoverflow.com/questions/40009418/how-do-i-get-permission-to-delete-rows-in-google-sheets –

ответ

1

пользовательские функции не разрешается доступ конкретных пользователей услуги

0

То, что я заметил, это пользовательская функция из ячейки не может сделать AUTH-требуются методы, но вы можете получить скрипт для запуска, если вам пусть сценарий будет запущен.

Пример: Я написал эту функцию скрипта, связанную с моим листом.

function getTheUser() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    sheet.getRange('a1').setValue(Session.getActiveUser()); 
} 

если я ставлю это в клетке

=getTheUser() 

клетка получает помеченную «Ошибка: У вас нет разрешения на вызов getActiveUser (строка 9, файл„Код“)»

Но если я перейду к сценариям проекта и создаю триггер для функции, функция будет работать ОК в любое время, когда условие запуска будет выполнено.

Мой план состоит в том, чтобы использовать триггеры для запуска функций, требующих авторизации.