#google-apps-script #google-drive-api
#google-apps-script #google-drive-api
Вопрос:
Я пытаюсь вернуть URL и заголовок скопированного файла, чтобы пользователь дополнения мог получить некоторую информацию, а также возможность открыть файл непосредственно из дополнения после создания копии.
мой Code.gs файловая функция:
function createFileCopy(id){
var file = id.split('.');
var docName = DriveApp.getFilesByName(file[0]);
while (docName.hasNext()) {
var file = docName.next();
var fileId = file.getId();
var fileName = file.getName();
}
var sheet = TEMPLATES_DATA;
var data = sheet.getRange(1, 9, sheet.getLastRow()-1, 1).getValues();
var pos = data.map(function (obj) { return obj[0]; }).indexOf(id);
if(pos > -1){
var val = sheet.getRange("J" (pos 1)).getValue() 1;
var title = sheet.getRange("A" (pos 1)).getValue();
sheet.getRange("J" (pos 1)).setValue(val);
}
return DriveApp.getFileById(fileId).makeCopy('Copy of ' title).getUrl();
}
функция в моем javascript.html файл должен сработать при успешном завершении следующим образом
function fileCopySuccess(fileInfo){
var content = '';
if( fileInfo != null){
content = '<h2>' fileInfo['title'] '</h2>';
content = '<a class="button action" href="' fileInfo['url'] '" target="_blank">Open File</a>';
$('#downloadBtn').html(content).removeClass('error');
} else {
$('#downloadBtn').html('');
}
}
В настоящее время я получаю только undefined
на обоих, title
и URL
Я уверен, что мне нужно добавить какой-нибудь метод в конец после makeCopy()
, чтобы передать массив моему fileCopySuccess
, но не знаю, что и как.
Пожалуйста, помогите.
Ответ №1:
Вы должны вернуть объект JSON из функции Google Script.
var newFile = DriveApp.getFileById(fileId).makeCopy('Copy of ' title);
return {
title: title,
url: newFile.getUrl()
}
Комментарии:
1. отлично, это сработало как по волшебству, сработает ли это на стороне пользователя, дополнение можно установить из Chrome Store и G Suit?
2. Это решение работает на моем локальном диске Google, но я только что опубликовал новую версию своего дополнения, и когда я пытаюсь использовать его с другой учетной записи, я постоянно получаю сообщение об ошибке, которое
You do not have permission to access the requested document.