Apps Script 需要使用者授權,才能存取內建 Google 服務或進階 Google 服務中的私人資料。
授予存取權限
Apps Script 會根據掃描程式碼自動決定授權範圍 (例如存取 Google 試算表檔案或 Gmail)。加註的程式碼仍可產生授權要求。如果指令碼需要授權,執行指令碼時,這裡會顯示其中一個授權對話方塊。
如果程式碼變更新增服務,您先前授權的指令碼也必須要求進行其他授權。如果以網頁應用程式形式存取指令碼,且該指令碼是以指令碼擁有者的使用者身分執行,則指令碼可能不會要求授權。
撤銷存取權限
如要撤銷指令碼的資料存取權,請按照下列步驟操作:
- 前往 Google 帳戶的權限頁面。(日後如要前往這個頁面,請造訪 Google.com,然後按一下畫面右上角的帳戶圖片。接著,按一下「My Account」、「Sign-in & Security」部分下方的「已連結的應用程式與網站」,以及「管理應用程式」。)
- 按一下您要撤銷授權的指令碼名稱,然後按一下右側的「移除」,然後在顯示的對話方塊中點選「確定」。
指令碼權限和指令碼類型
指令碼搭配執行指令碼所能存取的使用者身分,會因執行指令碼的情況而異,如下表所示。
指令碼類型 | 指令碼會以... |
---|---|
獨立、外掛程式或 繫結至 Google 文件、試算表、簡報或表單 | 鍵盤的使用者 |
試算表中的自訂函式 | 匿名使用者;不過,配額限制會計入鍵盤的使用者 |
網頁應用程式或 Google 協作平台小工具 | 鍵盤或指令碼擁有者的使用者,取決於部署應用程式時所選取的選項 |
可安裝的觸發條件 | 建立觸發條件的使用者 |
試算表、文件、簡報和表單的手動授權範圍
如果您要建立使用試算表服務、文件服務、簡報服務或表單服務的外掛程式,可強制授權對話方塊僅要求存取使用外掛程式或指令碼的檔案,而非使用者的所有試算表、文件或表單。如要這麼做,請在檔案層級註解中加入下列 JsDoc 註解:
/**
* @OnlyCurrentDoc
*/
如果您的指令碼包含宣告 @OnlyCurrentDoc
的程式庫,但主要指令碼實際上需要超過目前檔案的存取權,即可使用相反的註解 @NotOnlyCurrentDoc
。
外掛程式的授權生命週期
Google 試算表、文件、簡報和表單適用的外掛程式一般都會遵循與繫結至文件的指令碼相同的授權模型。但在某些情況下,其 onOpen(e)
和 onEdit(e)
函式會以無授權模式執行,顯示一些額外的小工具。詳情請參閱外掛程式授權生命週期指南。
OAuth 應用程式使用者限制
使用 OAuth 存取 Google 使用者資料的應用程式 (包括 Apps Script 專案) 必須遵守授權限制。詳情請參閱 OAuth 應用程式使用者限制。