Сначала я запускал его в приложении на диске, оно отлично работает, затем я пытаюсь перейти на API и у меня возникает проблема, когда я запускаю это в пользовательском интерфейсе с HTML, программа не работает, но если я запускаютот же сценарий в редакторе, выбрав функцию и отладив ее работает, я считаю, что проблема заключается в том, что я должен сделать что-то с разрешением API, потому что я запускаю его в веб-браузере, когда я использую пользовательский интерфейс с HTML, но яне знаю, что делать
Я пытался создать проект в консоли Google API, но я также не получил ответа.
//html
function fillData() {
var folderId = document.getElementById("ingress").value;
document.getElementById("branch").innerHTML = "branch #" + (++branch);
google.script.run
.withSuccessHandler(newRun)
.withFailureHandler(error)
.fillData(folderId, 25,true);
}
//code.gs
function fillData(folderId, max, API) {
sheet = SpreadsheetApp.getActive().getActiveSheet();
var data = (API) ? API(folderId, max) :APP(folderId, max);
var lastRow= getLastRow_(hojaAuditoria.getRange("A4:A"), 4);
var dataRange = sheet.getRange(lastRow + 1, 1, data.length, data[0].length);
dataRange.setValues(data);
var timeStamp = new Date();
sheet.getRange("B3")
.setValue(timeStamp)
.setHorizontalAlignment('left')
.setFontWeight("normal")
.setNumberFormat('dd/MM/yyyy HH:mm');
SpreadsheetApp.flush();
return (PropertiesService.getUserProperties().getProperty("token") != null);
}
function API(folderId, max) {
max= (max === undefined) ? max= 100 : max;
var pageToken = PropertiesService.getUserProperties().getProperty("token");
var strAux = (folderId === undefined) ? "" : 'and "' + folderId + '" in parents';
var query = 'mimeType != "application/vnd.google-apps.folder"' + strAux;
var files;
var result = [];
files = Drive.Files.list({
q: query,
maxResults: max,
pageToken: pageToken,
includeRemoved: true,
spaces: 'drive'
});
if (files.items && files.items.length > 0) {
for (var i = 0; i < files.items.length; i++) {
var file = files.items[i];
var fileAux = DriveApp.getFileById(file.id);
SpreadsheetApp.getActiveSpreadsheet().toast(file.title, "audit");
var permissions = getPermissions(file.id);
var parents = getParentData(file.parents);
result[i] = [
file.id,
"=HYPERLINK(\"" + file.alternateLink + "\";\"" + file.title + "\")",
file.mimeType,
date(new Date(file.createdDate)),
date(new Date(file.modifiedDate)),
(file.fileSize === undefined) ? "" : file.fileSize,
parents[0],
parents[1],
parents[2],
(file.labels.trashed) ? "YES" : "NO",
fileAux.getSharingAccess(),
fileAux.getSharingPermission(),
permissions[0],
permissions[1],
permissions[2],
permissions[3]
];
}
} else {
Logger.log('No files found.');
}
pageToken = files.nextPageToken;
PropertiesService.getUserProperties().setProperty("token", pageToken);
return result;
}
Я использую флаг API в функции fillData, чтобыперейти с DriveApp на API я получил отлично работающий пользовательский интерфейс с HTML, что удивительно, что он работает и в API, если я запускаю его с помощью отладки, предоставляемой редактором сценариев Google, но когда я запускаю API с пользовательским интерфейсом с HTML, я получил эту ошибку
ReferenceError: «Диск» не определен.в API (Permissions_Audit: 26) в fillData (sheetAudit: 62)