Добрый день. Подскажите, есть ли способ сделать двунаправленную синхронизацию данных между двумя гугл таблицами? Т.е. юзер меняет данные в первой таблице - они меняются во второй. В тот же момент другой юзер может поменять эти же данные во второй таблице и они должны поменяться в первой. Если было бы только на чтение, то решилось бы с помощью
IMPORTRANGE()
Делал так: отслеживал onEdit, открывал книгу и менял значения второй книги на значения первой.
try{
var rs = SpreadsheetApp.openByUrl(remoteUrl).getSheetByName(remoteListName);
rs.getRange(row,col,event.range.getValues().length,event.range.getValues()[0].length)
.setValues(event.range.getValues());
SpreadsheetApp.getActiveSpreadsheet().toast("Данные отправлены!");
}catch(err){
Browser.msgBox(JSON.stringify(err));
};
В результате получаю ошибку: недостаточно прав. Почитал, вроде бы
onEdit() урезан в правах
Editor add-on authorization
{"message":"Вам не разрешено вызывать пользователя SpreadsheetApp.openByUrl. Необходимые разрешения: https://www.googleapis.com/auth/spreadsheets.",
"name":"Exception",
"fileName":"Код",
"lineNumber":60,
"stack":"\tat Код:60 (onEdit)
"}
Как это победить? Делать триггер по времени? Получится ненадёжно, часть данных может потеряться.