use*_*394 5 google-apps-script
我遇到了getFolderById函数的问题.我是相关文件夹的所有者.具体电话如下.
var folder = DriveApp.getFolderById('string_id_of_my_folder');
Run Code Online (Sandbox Code Playgroud)
我正在传递函数内文件夹ID的长字符串.我在编辑器中运行了该函数以确保已启用权限 - 而且我没有收到任何错误.
但是当我尝试在电子表格中运行该函数时,我收到以下错误消息:"您没有权限调用getFolderById".
我究竟做错了什么?
所以这个问题的具体答案是你需要用这个设置 OAuth 范围
"https://www.googleapis.com/auth/drive"
在 appscript.json 文件中。要查找此文件,您需要转到应用程序脚本项目的设置。

每当您使用任何 Google API 时,您都需要从此处添加范围。然后,这将通过登录您的帐户再次请求您的许可。
{
"timeZone": "Europe/London",
"dependencies": {
"enabledAdvancedServices": [
{
"userSymbol": "Classroom",
"version": "v1",
"serviceId": "classroom"
}
]
},
"oauthScopes": [
"https://www.googleapis.com/auth/drive",
],
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
"executeAs": "USER_DEPLOYING",
"access": "MYSELF"
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是自定义函数和简单触发器以有限的权限运行:您无法执行需要用户凭据的操作,例如从另一个文件读取。此处针对自定义函数详细说明了这些限制,此处针对简单触发器详细说明了这些限制。
可安装的触发器没有此限制。因此,如果您在打开当前文件或从独立脚本时需要访问另一个文件,则需要安装触发器Open。这是谷歌的文档。