我通过使用 Google Drive API 和 java 从 Google Drive 下载文档。但我想使用 javascript 而不是 java。所以我正在使用 Drive API 客户端库 java 脚本代码。 我正在使用下面的代码来实现此目的
function downloadFile(file, callback) {
if (file.downloadUrl) {
var accessToken = gapi.auth.getToken().access_token;
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.onerror = function() {
callback(null);
};
xhr.send();
} else {
callback(null);
}
}
我的问题是我能够显示所有文件名和内容。但我无法下载文件。我需要做任何额外的代码吗?我如何将文件保存在本地系统中。有什么建议 ?
注意:如果我将 downloadUrl 粘贴到浏览器中,我可以在 file.downloadUrl
中获取值,它不会给出任何结果,只会显示一个空白页面。
最佳答案
“如果我将 downloadUrl 粘贴到浏览器中,它将不会给出任何结果”是正确的,因为当您使用浏览器 GET 时,没有身份验证 header 。如果您检查状态,您将看到 401 错误。
我使用“授权:'OAuth'+gapi.auth.getToken()['access_token']”而不是'Bearer'。我不确定这是否重要。
您确定 downloadUrl 是最新的吗?这是一个短暂的属性,因此链接可能已过期。
访问 token 也可能无效。正如 Burcu 所说,您的答案可能在您的 xhr 获取的响应和状态中。
关于javascript - 使用 javascript 谷歌驱动器下载文档 :can't download files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827888/