谷歌驱动下载文件使用javascript:无法下载文件

时间:2013-07-24 07:35:03

标签: javascript download google-drive-api documents

我通过使用带有java的Google驱动程序API从谷歌驱动器下载文档。但我想用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);
  }
}

我的问题是我能够显示所有文件名和内容。但我无法下载文件。我需要做任何额外的代码吗?如何在本地系统中保存文件。有什么建议 ? 注意:我可以在file.downloadUrl中获得价值,如果我将downloadUrl粘贴到浏览器中它不会给出任何结果,只显示一个空白页。

1 个答案:

答案 0 :(得分:0)

“如果我将downloadUrl粘贴到浏览器中它将不会给出任何结果”是正确的,因为当您使用浏览器获取时没有身份验证标头。如果您检查状态,您将看到401错误。

我使用“授权:' OAuth '+ gapi.auth.getToken()['access_token']”而不是'承载'。我不确定这是否重要。

你确定downloadUrl是最新的吗?这是一个短期属性,因此链接可能已过期。

访问令牌也可能无效。正如Burcu所说,你的回答可能在xhr get的响应和状态之内。