Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌脚本openByUrl自动化,触发激活_Google Apps Script - Fatal编程技术网

Google apps script 谷歌脚本openByUrl自动化,触发激活

Google apps script 谷歌脚本openByUrl自动化,触发激活,google-apps-script,Google Apps Script,我对编程和应用程序授权非常陌生: 我用命令openByUrl创建了一个必须访问我的Gdrive的其他文件的代码,该命令返回一条错误消息,告诉我它没有执行openByUrl的权限。 我浏览了oauth2的作用域,但不明白如何对我的脚本进行授权 我已经有一个运行DriveApp.getFolderById的internet复制脚本,但它是通过菜单运行的。 我希望getFolderById和openByUrl都在触发器上运行(每天午夜),因此它不能通过菜单运行 我的脚本的目标是列出指定文件夹中的所有文

我对编程和应用程序授权非常陌生: 我用命令
openByUrl
创建了一个必须访问我的Gdrive的其他文件的代码,该命令返回一条错误消息,告诉我它没有执行
openByUrl
的权限。 我浏览了oauth2的作用域,但不明白如何对我的脚本进行授权

我已经有一个运行
DriveApp.getFolderById
的internet复制脚本,但它是通过菜单运行的。 我希望getFolderById和openByUrl都在触发器上运行(每天午夜),因此它不能通过菜单运行

我的脚本的目标是列出指定文件夹中的所有文件,获取电子表格,并从这些电子表格中提取特定单元格

我得到了一些非常重要的东西,但很明显,它太大了,无法在3000多个文件上正常运行

有人能告诉我如何授权openByUrl吗?(法语更好;-)

非常感谢您的帮助。

回答 我将创建一个新项目并复制整个代码

如果要检查特定项目中出现此错误的原因,可以打开具有所需范围的清单文件。您可以单击左侧栏上的
项目设置
,然后
在编辑器中显示“appsscript.json”清单文件
。字段
oauthScopes
必须包含所有必需的作用域,或者必须删除

方法说明:
  • 获取具有指定名称的所有文件夹。使用
    .next()
  • 获取具有特定属性的所有文件
  • 打开特定的电子表格文档
  • 获取数组中的所有工作表
  • 得到一个特定的范围
  • 获取指定范围的值
更新代码:
非常感谢你的回答!我把它打开了!最后一个问题是,它必须从主文件夹中的文件夹中获取文件,这似乎与此代码不兼容,因为这些文件被子文件夹“隐藏”到代码中。这些子文件夹中是否有更多包含文件的文件夹?我问这个问题是想知道是否需要一个递归函数,或者仅仅获取主文件夹子文件夹中的所有文件就足够了。不,只有两个文件夹阶段,一个主文件夹是我所有申请者的,包含每个申请者的子文件夹,包含简历,每个申请者的激励信和信息电子表格我的电子表格的目标是获取所有申请者的电子表格的信息,以便每年进行某种形式的更新。我更新了代码,它从主文件夹中获取所有文件夹,然后是找到的每个文件夹中的所有文件。我希望它现在能像预期的那样工作。
function main() {

  var folderName = 'folder'
  var type = MimeType.GOOGLE_SHEETS
  var folders = DriveApp.getFoldersByName(folderName).next().getFolders()
  while (folders.hasNext()) {
    var folder = folders.next()
    console.log(folder.getName())
    var files = folder.getFilesByType(type)
    while (files.hasNext()) {
      var file = files.next()
      console.log(file.getName() + ': ' + file.getid())
      var sheets = SpreadsheetApp.openById(file.getid()).getSheets()
      var values = sheets[0].getRange('A1:B2').getValues()
      console.log(values)
    }
  }
}