iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
IT管理

「Google Apps Script」 學習筆記系列 第 13

【Day 13】Google Apps Script - API 篇 - Drive Service - 雲端硬碟服務範例

Google Drive(雲端硬碟) Service 使用到的 API 程式介紹


今日要點:
》Drive Service 使用到的 API 程式碼介紹


Drive Service 使用到的 API 程式碼介紹

前一天我們簡單介紹了 Drive Service 的文件與 Google 雲端硬碟的對應,今天繼續來介紹這系列會使用的到 API 程式使用範例。

我們在 Drive Service 中會使用到的 API,主要是在指定的資料夾,建立由 Docs 轉換後的 .apib 檔(API Blueprint),他是一般的文字檔,所以我們會使用 DriveApp 類別直接來建立。若是要建立的檔案是 google 應用的檔案(註*2),則是各自的 class 都有對應的建檔的 API。

DriveApp 建立檔案

DriveApp 直接寫檔的方式依不同的參數有 3 個 API,
DriveApp.createFile(blob)
DriveApp.createFile(name, content)
DriveApp.createFile(name, content, mimeType)

直接用 DriveApp 建檔,我們先使用 DriveApp.createFile(name, content) 的方式,傳入檔名跟內容,來建立轉換後的 .apib 檔,這個會寫一個檔案到根目錄去。

function createGoogleDriveTextFile(content) {
  var fileName = "鐵人賽-API-文件-Demo-程式自動產生-" + getTimestemp() + ".apib";
  DriveApp.createFile(fileName,content);
};

DriveApp.Folder 建立檔案

也可以指定一個資料夾的 id 來取得資料夾的位置,再把檔案存放到指定的資料夾去,我們主要都用這個,把輸出的檔案跟程式放在一起,比較好找檔案。

folder.createFile(name, content)

function createGoogleDriveTextFile(content) {
  var folder = DriveApp.getFolderById("1qihF3An6UJykI8TEii....");  
  var fileName = "鐵人賽-API-文件-Demo-程式自動產生-" + getTimestemp() + ".apib";
  var file = folder.createFile(fileName, content);
};

檔名通常會加個流水號 getTimestemp() 比較好辨識。

DriveApp 讀檔

另外如果不是要建一個新的檔案,而是要覆寫原有的檔案,那需要先讀檔,再寫入內容。

DriveApp.getFileById(id)
id:指檔案的編號,在網址列可以找到。

function readApibFile(id) {
  id = "1f-iixjzRsWR2ggfH0v3du6rd8wThcaj6";
  textfilecontents = "Demo";
  var textfile = DriveApp.getFileById(id);  
  textfile.setContent(textfilecontents);
 
};

以上介紹我們會使用到的建立檔案的 Drive API,很簡單吧。其他未使用的 API 就請再自行查閱囉。

附註補充一些相關的資訊,有需要可以一起看看 ^_^。


附註

註*1 - getTimestemp()

function getTimestemp(){
  var time = new Date().toISOString();
  var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds
  var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, 19);   //slice(0, 19)=2021-07-11T15:12:50   //slice(0, -1) = 2021-07-11T15:11:18.273
  var timestemp = localISOTime.replace(/-/g, "").replace(/:/g, "").replace("T", "-"); //20210711-151304
  return timestemp;
}

註*2 - 各應用建檔的 API - create

//建立 Google 文件
DocumentApp.create('Document Name');

//建立 Google 簡報
SlidesApp.create('Presentation Name');

//建立 Google 表單
FormApp.create('Form Name');

//建立 Google 表格
SpreadsheetApp.create("Finances");

參考


上一篇
【Day 12】Google Apps Script - API 篇 - Drive Service - 雲端硬碟服務介紹
下一篇
【Day 14】Google Apps Script - API 篇 - Document Service - 文件服務介紹
系列文
「Google Apps Script」 學習筆記30

尚未有邦友留言

立即登入留言