Получение случайных ошибок прав доступа с помощью Google App Script. Как отлаживать? - PullRequest
1 голос
/ 30 мая 2019

Я сделал библиотеку с кучей кода, который обращается к моей электронной таблице и моему диску Google.Я проверил это, и это работало, теперь это не работает.Я прочитал 20 ТАК о том, как это исправить, ничего не работает.Как мне отладить это?

Я получил эту ошибку "У вас нет разрешения на вызов DriveApp.getFolderById. Необходимые разрешения: (* https://www.googleapis.com/auth/drive.readonly || https://www.googleapis.com/auth/drive)" кака также та же ошибка для "SpreadsheetApp.getActiveSheet". Кажется, что периодически, когда я удаляю и повторно авторизирую код. Где хранятся эти авторизации?

Вот мой код:

function onOpen(e) {
  SpreadsheetApp.getUi()
    .createMenu("Scripts")
    .addItem("Sync Drive", "GAppsUtils.syncDrive")
    .addItem("Download Selected Scripts", "GAppsUtils.downloadSelectedScripts")
    .addToUi()
}

Вмоя библиотека GAppsUtils:

function copyFilesToFolder(files, folder) {
  for (var i in files) {
    var file = files[i]
    file.makeCopy(file.getName(), folder)
  }

  return folder
}

function createTempFolderFromFiles(files) {
  var tempFolder = DriveApp.getFolderById(FOLDERS.TEMP)
  var tempSubFolder = tempFolder.createFolder('download_' + Date.now())
  copyFilesToFolder(files, tempSubFolder)
  return tempSubFolder
}

function getSelectedCellValues() {
  var activeSheet = SpreadsheetApp.getActiveSheet()
  var selection = activeSheet.getSelection()
  var selectionValues = selection.getActiveRange().getValues()

  var range = selection.getActiveRange()
  var firstRowIndex = range.getRow()

  var unfilteredSelectionValues = []
  for (var i in selectionValues) {
    i = Number(i)
    if (!activeSheet.isRowHiddenByFilter(i + firstRowIndex)) {
      unfilteredSelectionValues.push(selectionValues[i])
    }
  }

  return unfilteredSelectionValues
}

function downloadSelectedScripts() {
  var selectedValues = getSelectedCellValues()
  var scriptFileNames = selectedValuesToScriptFileNames(selectedValues)
  var scriptFiles = getScriptFiles(scriptFileNames)
  var tempFolder = createTempFolderFromFiles(scriptFiles)
  Browser.msgBox(tempFolder.getUrl())
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...