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