使用UrlFetchApp授权

时间:2020-03-14 03:41:15

标签: google-apps-script basic-authentication urlfetch

我已经阅读了许多问题,但没有找到我的问题。我想访问一个远程文件并将其保存到我的GDrive中。 Google拒绝URL中包含user / pswd的URL。没有身份验证,代码如下:

fURL = "https://example.com/file.pdf";
finfo = downloadFile(fURL,'PDFs');

function downloadFile(fileURL,folder) {
  var response = UrlFetchApp.fetch(fileURL, {muteHttpExceptions: true});
  var rc = response.getResponseCode();
[...]

可以预见的是,这会产生401未经授权的错误。

因此,我在通话中添加了选项:

fURL = "https://example.com/file.pdf";
finfo = downloadFile(fURL,'PDFs');

function downloadFile(fileURL,folder) {
  var options =
      {
        method : "get",
        headers : {
          "Authorization": "Basic base64userpswd"
        },
        muteHttpExceptions : true
      };
  var response = UrlFetchApp.fetch(fileURL, options);
  var rc = response.getResponseCode();
[...]

只有此更改,Google现在会报告:

例外:属性没有提供值:url(第26行,文件“代码”)

我已经尝试过使用和不引用选项键的方法。我看不到由于包含选项而导致fileURL参数丢失的情况。道歉,如果真的很傻,但我很沮丧。

1 个答案:

答案 0 :(得分:0)

我一再调整自己的剧本,无论如何都无法获得相同的响应。但这是我第一次使用gscripts。我在左侧列出了许多脚本,而在处理最后一个脚本时,我没有意识到单击RUN时总是始终在顶部运行脚本#1。将脚本隔离为项目中的唯一脚本后,脚本便按预期运行。