У меня есть надстройка, которая манипулирует данными в Google Sheets.Это работает нормально, но я все еще вижу ошибки в журналах Stackdriver для других пользователей.
Я не могу воспроизвести эти ошибки во время моих тестов, но проблемы все еще существуют для некоторых пользователей.Использование try {} catch {} не решает проблему, а просто позволяет избежать получения сообщений об ошибках в журналах Stackdriver.
Вот мой код:
appsscript.json
{
"timeZone": "Europe/Moscow",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Sheets",
"serviceId": "sheets",
"version": "v4"
}]
},
"oauthScopes": [
"https://www.googleapis.com/auth/script.container.ui",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/script.scriptapp",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/userinfo.email"
],
"exceptionLogging": "STACKDRIVER"
}
Code.gs
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
SpreadsheetApp.getUi()
.createAddonMenu()
.addItem('Make some stuff', 'showMakesomeStuff')
.addToUi();
if (e && e.authMode !== ScriptApp.AuthMode.NONE) { // It looks that the problem is here.
myLinkCells();
google_analytics('file opened');
}
}
function myLinkCells() {
var allTriggers =[];
var allTriggers = ScriptApp.getProjectTriggers(); \\ This line triggers error;
var editTriggerSet = false;
for (var i = 0; i < allTriggers.length; i++) {
if (allTriggers[i].getEventType() == ScriptApp.EventType.ON_EDIT)
{
editTriggerSet = true;
break;
}
}
if (editTriggerSet == false) ScriptApp.newTrigger("callOnEdit").forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
}
function google_analytics(url) {
UrlFetchApp.fetch('https://ssl.google-analytics.com/collect', OPTIONS);
// This line also cause error. FYI OPTIONS is defined, but not in this example.
}
Примеры сообщений об ошибке: «У вас нетразрешение на вызов UrlFetchApp.fetch. Требуемые разрешения: https://www.googleapis.com/auth/script.external_request" или «У вас нет разрешения на вызов ScriptApp.getProjectTriggers.Требуемые разрешения: https://www.googleapis.com/auth/script.scriptapp".
Я просмотрел существующие вопросы, но не смог найти ничего похожего.