1. Google Apps Script 簡介
在本程式碼研究室中,我們將向您介紹一種最簡單的方法,協助您編寫可存取 Google 開發人員技術的程式碼。這一切只要套用 JavaScript (一種主流網路開發語言),使用 Google Apps Script 時,您需要撰寫程式碼來擷取 Google 試算表儲存格中的街道地址,然後根據地址產生 Google 地圖,再使用 Gmail 以附件形式傳送地圖。最棒的是,程式碼只需要四行程式碼。
課程內容
- 如何將 Google Apps Script 與各項 Google 服務搭配使用,例如 Google 試算表、Google 地圖和 Gmail。
- 使用 Apps Script 的瀏覽器內編輯器開發程式碼。
軟硬體需求
- 可連上網際網路的網路瀏覽器
- Google 帳戶 (Google Workspace 帳戶可能需要經過管理員核准)
- 熟悉 Google 試算表的基本知識
- 可讀取試算表的 A1 標記法
2. 問卷調查
您將如何使用這個程式碼研究室/教學課程?
針對 Google Workspace 開發人員工具和 Google Workspace 開發人員工具的體驗,您會給予什麼評價。API?
3. 總覽
現在您已瞭解本程式碼研究室的內容,您會具體到什麼?
- 進一步瞭解採用 JavaScript 的 Apps Script。
- 建立 Google 試算表。
- 在試算表左上方的儲存格 (A1) 中輸入街道地址。
- 瞭解如何開啟任何文件的 Apps Script 編輯器。
- 編輯、儲存、執行 Apps Script 程式碼。
- 請使用 Gmail 查看結果。
讓我們開始吧!
什麼是 Google Apps Script?
Google Apps Script 是一個開發平台,可讓您輕鬆快速地建立指令碼和小型應用程式,並與 Google Workspace 整合。使用 Apps Script 時,您可以:
- 以 JavaScript 編寫程式碼,並存取 Gmail、日曆、雲端硬碟等 Google Workspace 應用程式內建的程式庫。
- 無須安裝任何程式碼,我們直接在瀏覽器中提供程式碼編輯器,而您的指令碼可在 Google 的伺服器上執行。
- 不必擔心安全性和資料存取權限等複雜的主題,因為相關平台會為您處理。
Apps Script 可用於建立各種應用程式,例如聊天機器人和網頁應用程式。其中一項最常用的是擴充 Google 試算表功能。在本程式碼研究室的其餘部分,您將瞭解如何使用 Apps Script 擷取試算表中的資料,並將試算表連結至其他 Google 服務。
4. 建立 Google 試算表輸入街道地址
請按照下列操作說明,在新的 Google 試算表中輸入有效的街道地址:
- 請使用這個便利連結 (sheets.google.com/create) 建立 Google 試算表。或者,請前往 Google 雲端硬碟 (drive.google.com),然後按一下「新增」>Google 試算表 >空白試算表
- 在空白試算表中,前往左上角的第一個儲存格 (A1)。這些資訊位於 A 欄和第 1 列。如果需要重新熟悉,請參閱這個 A1 標記法的說明。
- 在儲存格中輸入有效的街道地址。您可以輸入街道地址、郵遞區號或城市與州/省的組合,選擇世界上完全相同的地址。以下是紐約市的地址範例:
而且,只需要在工作表中完成這些工作就可以了。請開啟編輯器並撰寫一些程式碼。
5. 編輯 Apps Script 程式碼
建立新的 Google 試算表後,就可以開始編輯繫結指令碼了。請按照以下步驟操作:
開啟指令碼編輯器
在選單列中,選取「擴充功能」>Apps Script:開啟 Apps Script 的瀏覽器程式碼編輯器。
在新的瀏覽器分頁中,程式碼編輯器會顯示工作表的預設 container-bound 指令碼。系統會自動建立名為 myFunction()
的預設函式,並將遊標放在函式中,方便您快速上手。
透過電子郵件傳送地址的 Google 地圖
「範本」您提供的程式碼是空的,所以讓我們用應用程式取代。
- 在指令碼編輯器中,將預設的
myFunction()
程式碼區塊替換成以下程式碼:
/** @OnlyCurrentDoc */
function sendMap() {
var sheet = SpreadsheetApp.getActiveSheet();
var address = sheet.getRange('A1').getValue();
var map = Maps.newStaticMap().addMarker(address);
GmailApp.sendEmail('YOUR_EMAIL_ADDR', 'Map', 'See below.', {attachments:[map]});
}
- 將預留位置電子郵件地址 (
'YOUR_EMAIL_ADDR'
) 替換成有效的電子郵件地址。例如 friend@example.com。 - 如要儲存指令碼,請按一下「儲存」圖示 。
- 如要重新命名 Apps Script 專案,請按一下「未命名專案」、輸入專案名稱,然後按一下「重新命名」。
程式碼審查
讓我們看看構成整個應用程式的 sendMap()
函式 4 行。有趣的是,程式碼參照了 3 種不同的 Google 產品。
第一行是會影響授權的註解註解:
/** @OnlyCurrentDoc */
大多數指令碼都會要求使用者授予某些權限才能執行。這些權限可控管使用者允許指令碼執行的作業。第一行是一則含有選擇性註解的註解,指示 Apps Script 限制應用程式指令碼只能存取目前的試算表 (而不是「所有」使用者的試算表)。最好只在只處理單一檔案時加入這項註解。
程式碼針對 sendMap()
使用一般 JavaScript 函式宣告:
function sendMap() {
下一行會呼叫試算表服務,從 Apps Script 透過 SpreadsheetApp
物件存取。傳回的工作表會指派給名稱相同的變數。getActiveSheet()
方法會取得目前工作表物件的參照,並將其儲存在 sheet
變數中。
var sheet = SpreadsheetApp.getActiveSheet();
透過 sheet
物件,我們會使用 getRange()
參照 A1 標記法中的儲存格範圍 (單一儲存格範圍)。一個「範圍」是一組儲存格,包含單一儲存格,例如儲存格 A1
(我們輸入地址的儲存格)。為了擷取「範圍」內的內容,getValue()
方法會傳回範圍左上角儲存格的值,並將值指派給 address
變數。您也可以嘗試新增更多地址,以及從其他儲存格讀取資料。
var address = sheet.getRange('A1').getValue();
第三行程式碼使用 Maps
物件連線至 Google 地圖服務。newStaticMap()
會建立靜態地圖物件,而 addMarker()
方法則會新增「圖釘」透過工作表中的地址將內容加入地圖。
var map = Maps.newStaticMap().addMarker(address);
最後,透過 MailApp
物件 Gmail 服務會呼叫 sendEmail()
方法,傳送同時包含「請見下方」文字的電子郵件。並以附件形式傳送地圖圖片。
GmailApp.sendEmail('friend@example.com', 'Map', 'See below.', {attachments:[map]});
}
6. 執行 Google 試算表、地圖和 Gmail 應用程式
命名並儲存完畢後,就可以執行函式了。在編輯器頂端,確認已選取函式清單中的 sendMap()
,然後按一下「Run」。
Apps Script 功能的開發人員十分重視,因為您不需要編寫授權碼即可授予程式存取使用者的資料。雖然 Apps Script 可管理此設定,但應用程式使用者仍需要先授予權限,才能讓指令碼存取試算表並透過 Gmail 傳送電子郵件。第一個授權對話方塊如下所示:
按一下「查看權限」繼續操作。
接著,系統會顯示 OAuth2 對話方塊視窗,要求存取工作表並代你傳送電子郵件:
在您授予權限後,指令碼就會執行完畢。
查看用來寄送郵件的電子郵件帳戶,您應該會看到附有「地圖」標示的電子郵件做為主旨,並使用類似如下的訊息:
開啟電子郵件中的附件後,你應該會看到 Google 地圖,上面有一個圖釘,圖釘的位置就在你在工作表中輸入的地址:
只需加入四行程式碼,就能以有意義的方式存取 3 種不同的 Google 產品。
7. 其他資源
您也可以在 GitHub 存放區的 github.com/googleworkspace/apps-script-intro-codelab 取得本程式碼研究室提供的程式碼。下列資源有助於深入瞭解本程式碼研究室涵蓋的內容,並探索透過程式輔助方式存取 Google 開發人員工具的其他方式。
說明文件
影片
新聞與動態
- Google Workspace 開發人員網誌
- Twitter:Google Workspace Developers (@workspacedevs)
其他程式碼研究室
入門
- [Google 試算表] Google 試算表 Apps Script 基礎知識
- [REST API] 使用 Google Workspace 和使用 Google API 來存取檔案和Google 雲端硬碟中的資料夾
中級
- [Apps Script] Gmail 專用 Google Workspace 外掛程式
- [Apps Script] Hangouts Chat 專用的自訂機器人
- [REST API] 使用 Google 試算表做為應用程式的報表工具
- [REST API] 使用 BigQuery API 產生 Google 簡報檔案