【发布时间】:2017-08-14 07:21:16
【问题描述】:
我正在尝试编写一个 Google Apps 脚本来下载特定云端硬盘文件夹中的所有文件(可能是 .csv 文件)。我找到了 getDownloadUrl() 方法,但我无法弄清楚用它做什么。我目前正在尝试以下代码,其中files 是文件夹中的文件列表:
while(files.hasNext()) {
var response = UrlFetchApp.fetch(files.next().getDownloadUrl());
Logger.log(response.getContentText());
}
但是,当我尝试运行代码时,我收到 401 错误,我猜这意味着我缺乏适当的授权?但我的印象是,如果一切都发生在我的一个 Google 帐户中,我就不需要完成所有 OAuth2 步骤。 The Google guide to connecting to external APIs 看起来我应该能够获取网址。我已经可以访问我的云端硬盘文件,因为当我运行该方法时下载 URL 确实存在。我在这里想念什么?我对这一切都很陌生,所以也许这是一些基本的东西。
谢谢!
编辑: 我设法通过如下修改代码来修复 401 错误:
while(files.hasNext()) {
var response = UrlFetchApp.fetch(files.next().getDownloadUrl(),{headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});
Logger.log(response.getContentText());
}
但问题仍然存在,这只会将内容返回给我,而不是下载文件。如何从 fetch 调用的结果中启动下载?
【问题讨论】:
标签: google-apps-script google-drive-api