javascript - 从 Google 云端硬盘请求文件元数据时缺少 'downloadUrl' 参数

标签 javascript google-drive-api

我正在尝试从 JavaScript 应用程序获取电子表格文档的内容。但来自 '/drive/v2/files/' + documentId 的响应没有 'downloadUrl' 属性。

我的代码是:

var apiKey, clientId, documentId, scopes;

documentId = "XXXXXXXXXX";
clientId = 'XXXXXXXXXXXXX.apps.googleusercontent.com';
apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXX';

scopes = 'https://www.googleapis.com/auth/drive';

window.OnLoadCallback = function() {
  console.log("google client loaded!");
  gapi.client.setApiKey(apiKey);
  return window.setTimeout(checkAuth, 1);
};

window.checkAuth = function() {
  return gapi.auth.authorize({
    client_id: clientId,
    scope: scopes,
    immediate: true
  }, function(e) {
    console.log("authorized!");
    return gapi.client.request({
      'path': '/drive/v2/files/' + documentId,
      'method': 'GET',
      callback: function(theResponseJS, theResponseTXT) {
        var downloadUrl, myToken, myXHR;
        console.log(theResponseJS);
        console.log(theResponseJS.downloadUrl); //is missing

        myToken = gapi.auth.getToken();
        myXHR = new XMLHttpRequest();
        myXHR.open('GET', theResponseJS.downloadUrl, true);
        myXHR.setRequestHeader('Authorization', 'Bearer ' + myToken.access_token);
        myXHR.onreadystatechange = function(theProgressEvent) {
          if (myXHR.readyState === 4) {
            if (myXHR.status === 200) {
              return console.log(myXHR.response);
            }
          }
        };
        return myXHR.send();
      }
    });
  });
};

我做错了什么?

谢谢!

最佳答案

Google 文档文件有一些内部/专有格式,似乎无法直接访问。唯一的选择是通过“exportLinks”集合将 Google 文档转换为其他定义明确的文档类型。

关于javascript - 从 Google 云端硬盘请求文件元数据时缺少 'downloadUrl' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11969839/

相关文章:

python - 如何使用 Python 将 Google 表单链接到 Google Sheet?

sqlite - React Native 应用程序中的 iCloud 和 Google Drive 集成

javascript - REGEX - 突出显示超过 19 个字符的部分

javascript - 如何根据先前的子宽度计算 div 的宽度

javascript - 如何使用 Javascript 停止 YouTube 中的视频?

ios - 适用于 iOS 的 Google Drive API 的代码签名错误

loops - 脚本运行时执行时间限制

android - 在 EditTextPreference 中禁用对话框,改为启动 Intent

javascript - jQuery/javascript 动态 hasClass 条件

javascript - jQuery 中的倒数计时器