Google 服務授權

Apps Script 需要使用者授權,才能存取內建 Google 服務進階 Google 服務的私人資料。

授予存取權

Apps Script 會根據掃描程式碼自動判斷授權範圍 (例如存取 Google 試算表檔案或 Gmail)。已加註的程式碼仍可產生授權要求。如果指令碼需要授權,您會在這裡看到其中一個授權對話方塊。

您之前授權的指令碼也會在程式碼變更新增服務時要求額外的授權。如果以指令碼擁有者的使用者身分執行的網頁應用程式存取指令碼,指令碼就可能不會要求授權。

撤銷存取權限

如要撤銷指令碼的資料存取權,請按照下列步驟操作:

  1. 前往 Google 帳戶的權限頁面。(日後如要前往這個頁面,請造訪 Google.com,然後按一下畫面右上角的帳戶圖片。接著,依序按一下「我的帳戶」、「登入和安全性」部分的「已連結的應用程式與網站」和「管理應用程式」
  2. 按一下您要撤銷授權的指令碼名稱,接著按一下右側的「移除」,然後在產生的對話方塊中按一下「確定」

指令碼的權限和類型

執行指令碼所使用的使用者身分,會因為執行指令碼的情境而不同,如下表所示。

指令碼類型 指令碼的執行方式為...
獨立外掛程式 繫結至 Google 文件、試算表、簡報或表單 鍵盤使用者
試算表中的自訂函式 匿名使用者;不過,鍵盤使用配額限制則會計入
網頁應用程式Google 協作平台小工具 鍵盤或指令碼擁有者的使用者,取決於部署應用程式時選定的選項
可安裝的觸發條件 建立觸發條件的使用者

試算表、文件、簡報和表單的手動授權範圍

如要建構使用試算表服務文件服務簡報服務表單服務外掛程式或其他指令碼,您可以強制授權對話方塊只要求存取含有該外掛程式或指令碼的檔案,而非使用者所有的試算表、文件或表單。如要執行此操作,請在檔案層級註解中加入下列 JsDoc 註解:

/**
 * @OnlyCurrentDoc
 */

如果您的指令碼包含宣告 @OnlyCurrentDoc程式庫,但主指令碼實際上需要存取比目前檔案以外的檔案,可以使用相對註解 @NotOnlyCurrentDoc

外掛程式的授權生命週期

Google 試算表、文件、簡報和表單的外掛程式一般都會遵循與文件繫結至文件的指令碼相同的授權模型。但在某些情況下,其 onOpen(e)onEdit(e) 函式會在無授權模式下執行,因而造成一些額外複雜性。詳情請參閱外掛程式授權生命週期指南

OAuth 應用程式使用者限制

使用 OAuth 存取 Google 使用者資料的應用程式 (包括 Apps Script 專案) 有授權限制。詳情請參閱「OAuth 應用程式使用者限制」一文。