我有一张工作表,我需要获取位于我的Google驱动器中的文件的ID。 我写了下面的脚本:
function get_id_pdf() {
var nom='INV432-altaïr-Famille XXX-XXX Marie-03-2016.pdf';
var files = DriveApp.getFilesByName("'"+nom+"'");
while (files.hasNext()) {
var file = files.next();
var name = file.getName();
var type = file.getMimeType();
var url = file.getUrl();
var id = file.getId();
// Logger.log(file.getId());
return file.getId();
}
}
如果我在脚本编辑器中执行它(使用run
按钮),它运行良好(我得到了日志的id)。
但是,如果我从Google表格的单元格(单元格:=get_id_pdf()
)中调用脚本,则会收到错误消息:
“您无权调用getFilesByName ”(见图片)
我当然拥有访问此文件的所有权限(它位于我自己的驱动器中,并且该文件已由我创建)。
有人有想法吗?
问候。
答案 0 :(得分:0)
您不能以匿名用户身份调用需要用户授权的服务,这是自定义函数执行的操作。您需要将行为放入自定义菜单或侧边栏中,以便用户可以授权。
如果您的自定义函数抛出错误消息 "您没有 允许调用X服务。" ,该服务需要用户授权 因此不能用于自定义功能。