Google Drive API导出GAS文件特定版本

时间:2017-07-11 11:34:32

标签: javascript google-apps-script google-drive-api


我目前正在尝试为我们的Google App Script文件添加订单,并开发一个HTMLService应用程序,用于查找和解析Google Drive中的GAS文件,并根据jsdoc样式注释生成API文档。

我有WebApp功能,可以提取我需要的所有数据并解析注释,但默认情况下它会导出当前的GAS文件内容,无论它是否已发布。

我想要做的是提取最新保存版本的内容而不是当前的开发内容,有没有办法指定要导出的版本?

我使用URLFetch()获取内容,如下所示:



var params = {
    headers:{
      'Accept':'application/vnd.google-apps.script+json', 
      'Authorization':'Bearer '+ ScriptApp.getOAuthToken()
    }, 
    method:'get'
  };
  
  var fileDrive = Drive.Files.get(fileId);
  var link = JSON.parse(fileDrive)['exportLinks']['application/vnd.google-apps.script+json'];
  var fetched = UrlFetchApp.fetch(link, params);
  return { meta: fileDrive, source: JSON.parse(fetched.getContentText()) };




任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

根据此documentation,每项更改都称为"修订版"并通过Revisions资源提供对修订的访问。您可以通过编程方式保存文件的新修订版,或查询版本历史记录,详见Revisions reference

<强> Listing revisions

  

以下示例演示如何列出给定文件的修订。请注意,某些修订属性仅适用于某些文件类型。例如,G Suite应用程序文件不占用Google云端硬盘中的空间,因此返回的文件大小为0

function listRevisions(fileId) {
  var revisions = Drive.Revisions.list(fileId);
  if (revisions.items && revisions.items.length > 0) {
    for (var i = 0; i < revisions.items.length; i++) {
      var revision = revisions.items[i];
      var date = new Date(revision.modifiedDate);
      Logger.log('Date: %s, File size (bytes): %s', date.toLocaleString(),
          revision.fileSize);
    }
  } else {
    Logger.log('No revisions found.');
  }
}

希望这有帮助!