使用者必須授權指令碼專案,以便存取其資料或執行以下動作: 當使用者首次執行需要授權的指令碼時,UI 會顯示提示,要求使用者開始授權流程。
在這個流程中,UI 會向使用者說明指令碼要求的權限 該如何採取行動舉例來說,指令碼可能需要讀取使用者的 或建立活動。指令碼專案 這些個別權限都會定義為 OAuth 範圍。
針對大多數指令碼,Apps Script 會自動偵測其範圍 你可以查看指令碼使用的範圍 。您也可以明確設定範圍 在您的資訊清單中使用網址字串。設定 有時候,某些應用程式 (例如 外掛程式,因為已發布的應用程式應該 建議您一律使用最精細的範圍
在授權流程中,Apps Script 會向使用者顯示必要範圍的說明,讓使用者能夠輕鬆閱讀。比方說
需要試算表的唯讀存取權,資訊清單可能包含範圍
https://www.googleapis.com/auth/spreadsheets.readonly
。在授權流程中,含有此範圍的指令碼會要求使用者允許這個應用程式「查看您的 Google 試算表」。
某些範圍包含其他範圍。例如,授權範圍
https://www.googleapis.com/auth/spreadsheets
允許讀取及寫入
試算表。
查看範圍
如要查看指令碼專案目前所需的範圍,請執行 包括:
- 開啟指令碼專案。
- 按一下左側的「總覽」圖示 。
- 查看「Project OAuth Scopes」下方的範圍。
設定明確範圍
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 範圍附加規定。