【发布时间】:2020-03-14 03:41:15
【问题描述】:
我已经阅读了很多问题,但没有找到我的问题。我想访问一个远程文件并将其保存到我的 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 Unauthorized 错误。
所以,我在调用中添加了选项:
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 参数是如何丢失的。抱歉,如果它真的很愚蠢,但我很难过。
【问题讨论】:
-
虽然我无法理解
Exception: Attribute provided with no value: url (line 26, file "Code")的line 26和你的实际脚本,请问运行脚本的方法是什么?例如,您在脚本编辑器中运行问题中的downloadFile函数,首先,finfo = downloadFile(fURL,'PDFs');使用参数运行,并且function downloadFile(fileURL,folder) {}也没有参数运行。您的问题与此有关吗? -
对不起,这是我第一次使用gscript接口。我在左侧列出了许多脚本,在处理最后一个脚本时,当我单击 RUN 时,我没有意识到它总是在顶部运行脚本 #1。现在一切都好,谢谢。
-
感谢您的回复。我很高兴你的问题得到了解决。如果您的问题已解决,您可以将其发布为答案吗?这样,它对遇到相同问题的其他用户很有用。
标签: google-apps-script basic-authentication urlfetch