實際操作 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 開發人員工具和 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

而且,只需要在工作表中完成這些工作就可以了。請開啟編輯器並撰寫一些程式碼。

5. 編輯 Apps Script 程式碼

建立新的 Google 試算表後,就可以開始編輯繫結指令碼了。請按照以下步驟操作:

開啟指令碼編輯器

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

在新的瀏覽器分頁中,程式碼編輯器會顯示工作表的預設 container-bound 指令碼。系統會自動建立名為 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);

最後,透過 MailApp 物件 Gmail 服務會呼叫 sendEmail() 方法,傳送同時包含「請見下方」文字的電子郵件。並以附件形式傳送地圖圖片。

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

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

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

Apps Script 功能的開發人員十分重視,因為您不需要編寫授權碼即可授予程式存取使用者的資料。雖然 Apps Script 可管理此設定,但應用程式使用者仍需要先授予權限,才能讓指令碼存取試算表並透過 Gmail 傳送電子郵件。第一個授權對話方塊如下所示:

ba6e1a798e404e0d.png

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

接著,系統會顯示 OAuth2 對話方塊視窗,要求存取工作表並代你傳送電子郵件:

9bed7ef1ccbd7569.png

在您授予權限後,指令碼就會執行完畢。

查看用來寄送郵件的電子郵件帳戶,您應該會看到附有「地圖」標示的電子郵件做為主旨,並使用類似如下的訊息:

51f61fc51a13d28f.png

開啟電子郵件中的附件後,你應該會看到 Google 地圖,上面有一個圖釘,圖釘的位置就在你在工作表中輸入的地址:

739bb45b75e3f7c7.png

只需加入四行程式碼,就能以有意義的方式存取 3 種不同的 Google 產品。

7. 其他資源

您也可以在 GitHub 存放區的 github.com/googleworkspace/apps-script-intro-codelab 取得本程式碼研究室提供的程式碼。下列資源有助於深入瞭解本程式碼研究室涵蓋的內容,並探索透過程式輔助方式存取 Google 開發人員工具的其他方式。

說明文件

影片

新聞與動態

其他程式碼研究室

入門

中級

參考應用程式