Google Drive(雲端硬碟) Service 使用到的 API 程式介紹
今日要點:
》Drive Service 使用到的 API 程式碼介紹
前一天我們簡單介紹了 Drive Service 的文件與 Google 雲端硬碟的對應,今天繼續來介紹這系列會使用的到 API 程式使用範例。
我們在 Drive Service 中會使用到的 API,主要是在指定的資料夾,建立由 Docs 轉換後的 .apib 檔(API
B
lueprint),他是一般的文字檔,所以我們會使用 DriveApp 類別直接來建立。若是要建立的檔案是 google 應用的檔案(註*2),則是各自的 class 都有對應的建檔的 API。
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);
};
也可以指定一個資料夾的 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.getFileById(id)
id:指檔案的編號,在網址列可以找到。
function readApibFile(id) {
id = "1f-iixjzRsWR2ggfH0v3du6rd8wThcaj6";
textfilecontents = "Demo";
var textfile = DriveApp.getFileById(id);
textfile.setContent(textfilecontents);
};
以上介紹我們會使用到的建立檔案的 Drive API,很簡單吧。其他未使用的 API 就請再自行查閱囉。
附註補充一些相關的資訊,有需要可以一起看看 ^_^。
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;
}
//建立 Google 文件
DocumentApp.create('Document Name');
//建立 Google 簡報
SlidesApp.create('Presentation Name');
//建立 Google 表單
FormApp.create('Form Name');
//建立 Google 表格
SpreadsheetApp.create("Finances");