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