如何获取Google Apps脚本的文本内容?

时间:2018-09-25 18:12:50

标签: javascript text google-apps-script

目标是从Google云端硬盘获取所有SCRIPT类型的文件; &循环获取其文本内容。

我的代码是:

function searchFiles() {
  //https://developers.google.com/apps-script/reference/base/mime-type
  var type = MimeType.GOOGLE_APPS_SCRIPT;
  var files = DriveApp.getFilesByType(type);
  while (files.hasNext()) {
    var file = files.next();
    process(file);
  }
}
function process(file){
  //https://developers.google.com/apps-script/reference/base/mime-type
  var txt = file.getBlob(PLAIN_TEXT);
  Logger.log(txt);
}

我从file.getBlob()得到的错误是:Converting from application/vnd.google-apps.script to application/pdf is not supported.

我还尝试了file.getUrl()的FetchURL,但是如果我在与登录时相同的窗口中打开,并且如果以隐身方式打开,则也会提供错误页面HTML,这也只是提供了文件的整个HTML。

是否可以在Google Apps脚本中获取脚本文件的文本内容?

1 个答案:

答案 0 :(得分:3)

流量:

  • 通过MIME获取所有脚本文件
  • 获取每个文件的ID
  • 通过Drive REST API或Apps Script API进行获取

脚本:

function getScriptSourceCode(fileid) {
  var params = {
    headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
    followRedirects: true,
    muteHttpExceptions: true,
  };
  var url =
    'https://script.google.com/feeds/download/export?id=' +
    fileid +
    '&format=json';
  var response = UrlFetchApp.fetch(url, params);
  var json = JSON.parse(response);
  for (var file in json['files']) {
    Logger.log(json['files'][file]['source']); //Source code
  }
}

参考文献: