Спасибо всем. Я на самом деле пришел к тому же решению, используя управляемые временем триггеры. Я думаю, что я подошел к проблеме с неправильной точки зрения. Я думал, что с помощью функции в ячейках листа будет работать, но я просто перебрал столбец с заданным интервалом.
ел бы создать пользовательскую функцию, которая извлекает URL-адрес диска из имени файла в Google Sheets.
Итак, используя код ниже:
Если у меня есть правильное имя файла в ячейкеA1
Функция=getFile(A1)
вернет URL
getFile()
из моего листа я получаю ошибку ниже.Мой код:
function getFile(cell) {
var filename = encodeURI(cell);
var url = "https://www.googleapis.com/drive/v3/files?fields=files(id,name)&q=name+contains+'" + filename + "' and trashed=false";
var params = {
method: "GET",
headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions: true
};
var res = UrlFetchApp.fetch(url, params).getContentText();
var json = JSON.parse(res);
return res; // outputs response below
if(json){
var objFiles = json.files[0];
var fileID = objFiles.id
var resURL = "https://docs.google.com/spreadsheets/d/" + fileID;
Logger.log(resURL);
//return resURL; // only works when run within script editor
}
}
Ошибка:
"{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
"
Я предполагаю, что что-то не так с моим токеном Auth. Может кто-нибудь направить меня к решению этого? Заранее спасибо!