實際操作 Google Apps Script:透過 4 行程式碼,存取 Google 試算表、地圖和 Gmail!

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 開發人員工具和 API 的體驗滿意嗎?

新手 中級 熟練

3. 總覽

現在您已瞭解本程式碼研究室的主題,接下來要具體做些什麼呢?

  1. 概略瞭解以 JavaScript 為基礎的 Apps Script。
  2. 建立 Google 試算表。
  3. 在試算表左上方的儲存格 (A1) 中輸入街道地址。
  4. 瞭解如何開啟任何文件的 Apps Script 編輯器。
  5. 編輯、儲存及執行 Apps Script 程式碼。
  6. 使用 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 試算表中輸入有效的街道地址:

  1. 使用這個便利連結 (sheets.google.com/create) 建立 Google 試算表。或者,前往 Google 雲端硬碟 (drive.google.com),然後依序點按「新增」>「Google 試算表」>「空白試算表」

413a93e5b2f6b3d4.png

  1. 在空白試算表中,前往左上角的第一個儲存格 (A1)。應位於 A 欄第 1 列。如需複習,請參閱這篇文章,瞭解 A1 標記。
  2. 在儲存格中輸入有效的街道地址。使用街道地址、郵遞區號,或城市和州/省的組合,選擇世界上的某個地址,並指定確切位置。以下是紐約市的地址範例:

7077e446455639df.png

這樣便完成了需要在 Google 試算表執行的所有操作,現在,我們就開啟編輯器,開始動手寫程式吧。

5. 編輯 Apps Script 程式碼

現在您已建立新的 Google 試算表,可以開始編輯其繫結指令碼。請按照以下步驟操作:

開啟指令碼編輯器

在選單列中,依序選取「擴充功能」>「Apps Script」,開啟 Apps Script 的瀏覽器程式碼編輯器。

在新瀏覽器分頁中,程式碼編輯器會顯示工作表的預設容器繫結指令碼。系統會自動建立名為 myFunction() 的預設函式,並將游標放在函式內,方便您開始作業。

透過電子郵件傳送地址的 Google 地圖

您取得的「範本」程式碼是空白的,因此請將其替換為我們的應用程式。

  1. 在指令碼編輯器中,將預設的 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]});
}
  1. 將預留位置電子郵件地址 ('YOUR_EMAIL_ADDR') 替換為有效地址。例如 friend@example.com
  2. 如要儲存指令碼,請按一下「儲存」圖示 儲存
  3. 如要重新命名 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);

最後,Gmail 服務會透過 MailApp 物件呼叫 sendEmail() 方法,傳送電子郵件,其中包含「See below.」文字和做為附件的地圖圖片。

  GmailApp.sendEmail('friend@example.com', 'Map', 'See below.', {attachments:[map]});
}

6. 執行 Google 試算表、地圖和 Gmail 應用程式

命名並儲存後,即可執行函式。在編輯器頂端,確認已從函式清單中選取 sendMap(),然後按一下「執行」

開發人員很喜歡 Apps Script 的一項功能,就是不必編寫授權碼,就能授予程式存取使用者資料的權限。雖然 Apps Script 會管理這項作業,但應用程式使用者仍須授予指令碼存取試算表的權限,並允許指令碼代表他們透過 Gmail 傳送電子郵件。第一個授權對話方塊如下所示:

ba6e1a798e404e0d.png

按一下「查看權限」繼續操作。

接著,系統會顯示 OAuth2 對話方塊,要求存取試算表及代您傳送電子郵件的權限:

9bed7ef1ccbd7569.png

授予權限後,指令碼會自動完成執行。

檢查您傳送訊息的電子郵件帳戶,您應該會看到主旨為「Map」的電子郵件,內文如下:

51f61fc51a13d28f.png

開啟電子郵件中的附件時,您應該會看到 Google 地圖,並在您輸入到試算表的地址上顯示圖釘:

739bb45b75e3f7c7.png

您只用了四行程式碼,就以有意義的方式存取了 3 種不同的 Google 產品。

7. 其他資源

本程式碼研究室的程式碼也會放在 GitHub 存放區 (github.com/googleworkspace/apps-script-intro-codelab),您也可以參考下方的額外資源,深入瞭解本程式碼研究室涵蓋的內容,並探索其他透過程式存取 Google 開發人員工具的方法。

說明文件

影片

最新消息與更新

其他程式碼研究室

入門

中級

參考應用程式