使用者必須授權指令碼專案存取其資料或代表使用者採取行動。使用者首次執行需要授權的指令碼時,UI 會顯示啟動授權流程的提示。
在這個流程中,UI 會向使用者告知指令碼需要的權限。例如,指令碼可能需要讀取使用者電子郵件的權限,或是在他們的日曆中建立事件。指令碼專案會將這些個別權限定義為 OAuth 範圍。
針對大多數指令碼,Apps Script 會自動偵測需要的範圍;您隨時可以查看指令碼使用的範圍。您也可以在資訊清單中使用網址字串明確設定範圍。某些應用程式 (例如外掛程式) 有時需要明確設定範圍,因為已發布的應用程式應一律盡可能使用最小的範圍。
在授權流程中,Apps Script 會為使用者提供容易理解的必要範圍說明。舉例來說,如果您的指令碼需要試算表的唯讀存取權,則資訊清單範圍可能為 https://www.googleapis.com/auth/spreadsheets.readonly
。在授權流程中,設有此範圍的指令碼會要求使用者允許這個應用程式「查看您的 Google 試算表」。
部分範圍包含其他範圍。舉例來說,在授權範圍 https://www.googleapis.com/auth/spreadsheets
時,允許讀取及寫入試算表。
查看範圍
如要查看指令碼專案目前需要的範圍,請按照下列步驟操作:
- 開啟指令碼專案。
- 按一下左側的「Overview」 。
- 查看「Project OAuth 範圍」下方的範圍。
設定明確範圍
Apps Script 會掃描程式碼,找出需要這些指令碼的函式呼叫,以自動判斷指令碼所需的範圍。對大多數指令碼來說,這就已經足夠並可以節省您的時間,但對於已發布的外掛程式、網頁應用程式、Google Chat 應用程式和 Google Chat API 呼叫,您必須進一步控管範圍。
Apps Script 有時會自動指派權限非常寬鬆的專案範圍。這可能表示指令碼會要求使用者提供不必要的資訊,而這是不當做法。以已發布的指令碼來說,您必須將廣泛範圍替換為範圍較有限且可涵蓋指令碼需求的組合,並且不需要其他範圍。
您可以編輯其資訊清單檔案,明確設定指令碼專案使用的範圍。資訊清單欄位 oauthScopes
是專案使用的所有範圍陣列。如要設定專案範圍,請執行下列操作:
- 開啟指令碼專案。
- 按一下左側的「專案設定」圖示 。
- 勾選「在編輯器中顯示「appsscript.json」資訊清單檔案」核取方塊。
- 按一下左側的「編輯器」圖示 。
- 按一下左側的
appsscript.json
檔案。 - 找出標有
oauthScopes
的頂層欄位。如果沒有,您可以新增。 oauthScopes
欄位會指定字串陣列。如要設定專案使用的範圍,請將這個陣列的內容替換為要使用的範圍。例如:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- 按一下頂端的「 」。
OAuth 驗證
某些 OAuth 範圍允許存取 Google 使用者資料,因此屬於敏感範圍。如果您的指令碼專案使用的範圍允許存取使用者資料,該專案必須先完成 OAuth 用戶端驗證,您才能將專案以網頁應用程式或外掛程式公開發布。詳情請參閱下列指南:
受限制的範圍
除了機密範圍外,某些範圍會歸類為受限制,且適用其他有助於保護使用者資料的規則。若您打算發布使用一或多個受限制範圍的網頁應用程式或外掛程式,應用程式必須符合所有指定限制才能發布。
嘗試發布前,請先詳閱受限制範圍的完整清單。如果您的應用程式包含上述任一項目,在發布前請務必遵守特定 API 範圍的額外規定。