筆記說明
此筆記僅記錄大衛如何使用 google docs 中的建立程式碼,來寫成一份外掛程式。
並非所有人都適用,部分對我而言稍加容易的內容並不會寫在此內。
這是學習後心得的筆記,可能不太適用會未來的學生,或是版本更新就不適用由於我並不是 google app script 大神,可能有些地方沒有寫得很棒,還請多包涵。
Google App Script 是甚麼
- 是 Google 以 JS 為基底再衍伸出的一種腳本
- 能專門在 Google Workspace 進行輕量應用開發
Google Workspace: gmail, drive, Jam….,只要是 google 提供的服務都是 Google Workspace - Google App Script 可以在 docs、sheet、slide 建立插件。
主題:Google App Script 連接 Google docs
這次我們要講 Google App Script 應用在 Google docs,大家應該都很清楚,我們有時候再運用 Google docs 上總是會覺得功能不夠多,不夠好用,這時候自己寫一個外掛程式就可以幫助我們,那要怎麼寫呢?
首先,我們必須要學會 JavaScript,這應該對大家都還行。
這裡我們會細分兩部分
- 再 google docs 加入外掛,供使用者進行使用
- 使用追縱器,追蹤使用者打開文件
如果是 google sheet,甚至可以追蹤文件修改。
google docs 加入外掛,供使用者進行使用
- 這裡我們只是做一個簡單的快速開始,我之前有再工作時應用到,但是這是工作機密因此無法洩漏,
- 不過有興趣做此應用的讀者可以考慮做做看:蒐集新聞,並放入 google docs 裡面,製作成報刊。
- 我知道 google 的 example,並不是非常好用,所以我在這邊做一個簡單介紹,方便使用者快速上手。
- 那我們範例的專案就是讓 google docs 裡面的單字放到 alert 來提醒我們。
- 提供一個方向給初學者參考,google App Script 都是以 class 為主,因此當我們需要用到 google docs 我們就使用
DocumentApp
、使用 google sheet 就用spreadsheet
,一些常用的套件則也有 class。稍微比一般的 js 容易閱讀、使用- Google Drive Class
- Google Document Class
- 舉著兩個例子,大家可以去這邊看看 Google App Script 的 class
介紹開始
- 首先我們必須先開啟一份 google docs
- 之後我們點選 工具 > 指令碼編輯器,注意:指令碼編輯器必須要是此文件的編輯者
- 再來我們進入程式碼編輯區,大家可以自行摸索下
- 我們可以從 Google Document Class 得知,google Docs 的程式結構類似於 html,因此必須熟讀 Google Document Class 才可以知道程式碼要如何運作。
- 將此專案進行改名,點此改名,這邊我們改名 跳出 word 內所有單字訊息
這邊我們則直接寫程式,直接作範例
1 | function main(){ //主要執行區 |
Google App Script 操作
- 先將資料進行儲存(ctrl+s),之後我們要選擇當程式啟動後,第一個呼叫的程式是哪個,這裡的話則是呼叫
main
- 寫完後的第一次執行,通常會告訴你需要授權這份專案存取你的資料,那我們一定也會答應的,除非你自己寫的這份程式碼有毒XDDD。
- 因此點選 審查權限 > 選擇帳戶(必須與 Google App Script 的帳戶相同) > 允許。
- 執行程式
Google Doc 加入外掛套件
- Google App Script 操作完成後,點選 外掛程式 > 跳出 word 內所有單字訊息 > update keyword
- 成果畫面 A
- 成果畫面 B
讓此外掛永遠存在此文件
- 有些讀者應該有發現,當我們 refresh google doc 則我們的外掛套件就會消失
- 如果我們執行過程式,則 google doc 的外掛程式永遠只會是第一次執行的結果,如果先前有做修改,那我們就 refresh google doc,從做上面兩大操作。
- 那當我們執行好後,應該要如何讓我們寫的程式外掛一直都存在這份文件呢?
- 請按照此照片的步驟進行點選,中間的主畫面則交給使用者進行微調。
Google App Script 使用其他方式來編輯 google doc
有時候我們一份程式碼並不一定只用在當前的 google docs DocumentApp.getActiveDocument()
,如果他有需要用到其他 google doc DocumentApp.openById(id)
,另一份 google doc 如果想要透過 google doc ID 來編輯、追蹤此文件,則可以查看下行連結
Can I use DocumentApp.openById() with read only permission? by stackoverflow
而 google doc ID 我們要怎麼知道呢?
1 | https://docs.google.com/document/d/XXX/edit |
其中 XXX 處中的所有文字就是這份文件的 ID。
參考連結
Google Drive Class
Google Document Class
Google Document Interface Element
Can I use DocumentApp.openById() with read only permission? by stackoverflow
心得
Google 的說明文件真的很不好閱讀欸…,給我快速開始拉QQQ。
想當然,Google 的服務自然是非常好用,非常棒,但有些部分還沒有到完全齊全,對使用者來說可以達到百分之百的友善。
如果讀者有好好的去查看他們的說明文件則會發現他們的 method 都沒有給舉例,因此常常會發現,他告訴我有這個函式、這個功能!可是我不知道怎麼用,怎麼寫…。接下來我們再去用 google search 去找如何使用此函數,或是他有沒有一些必備的前置動作之類的,畢竟雲端程式最大的缺點就是 debug 非常不容易…,每次 debug 都跟通靈沒啥不一樣QQ。
但還是謝謝 google 發明這份程式且願意免費讓我來使用QQ,很感謝你們,嗚嗚。
但拜託不要養套殺我拉。