授權範圍

使用者必須授權指令碼專案存取其資料或代表使用者採取行動。使用者首次執行需要授權的指令碼時,UI 會顯示啟動授權流程的提示。

在這個流程中,UI 會向使用者告知指令碼需要的權限。例如,指令碼可能需要讀取使用者電子郵件的權限,或是在他們的日曆中建立事件。指令碼專案會將這些個別權限定義為 OAuth 範圍

針對大多數指令碼,Apps Script 會自動偵測需要的範圍;您隨時可以查看指令碼使用的範圍。您也可以在資訊清單中使用網址字串明確設定範圍。某些應用程式 (例如外掛程式) 有時需要明確設定範圍,因為已發布的應用程式應一律盡可能使用最小的範圍。

在授權流程中,Apps Script 會為使用者提供容易理解的必要範圍說明。舉例來說,如果您的指令碼需要試算表的唯讀存取權,則資訊清單範圍可能為 https://www.googleapis.com/auth/spreadsheets.readonly。在授權流程中,設有此範圍的指令碼會要求使用者允許這個應用程式「查看您的 Google 試算表」。

部分範圍包含其他範圍。舉例來說,在授權範圍 https://www.googleapis.com/auth/spreadsheets 時,允許讀取及寫入試算表。

查看範圍

如要查看指令碼專案目前需要的範圍,請按照下列步驟操作:

  1. 開啟指令碼專案。
  2. 按一下左側的「Overview」
  3. 查看「Project OAuth 範圍」下方的範圍。

設定明確範圍

Apps Script 會掃描程式碼,找出需要這些指令碼的函式呼叫,以自動判斷指令碼所需的範圍。對大多數指令碼來說,這就已經足夠並可以節省您的時間,但對於已發布的外掛程式、網頁應用程式、Google Chat 應用程式和 Google Chat API 呼叫,您必須進一步控管範圍。

Apps Script 有時會自動指派權限非常寬鬆的專案範圍。這可能表示指令碼會要求使用者提供不必要的資訊,而這是不當做法。以已發布的指令碼來說,您必須將廣泛範圍替換為範圍較有限且可涵蓋指令碼需求的組合,並且不需要其他範圍。

您可以編輯其資訊清單檔案,明確設定指令碼專案使用的範圍。資訊清單欄位 oauthScopes 是專案使用的所有範圍陣列。如要設定專案範圍,請執行下列操作:

  1. 開啟指令碼專案。
  2. 按一下左側的「專案設定」圖示
  3. 勾選「在編輯器中顯示「appsscript.json」資訊清單檔案」核取方塊。
  4. 按一下左側的「編輯器」圖示
  5. 按一下左側的 appsscript.json 檔案。
  6. 找出標有 oauthScopes 的頂層欄位。如果沒有,您可以新增。
  7. oauthScopes 欄位會指定字串陣列。如要設定專案使用的範圍,請將這個陣列的內容替換為要使用的範圍。例如:
          {
            ...
            "oauthScopes": [
              "https://www.googleapis.com/auth/spreadsheets.readonly",
              "https://www.googleapis.com/auth/userinfo.email"
            ],
           ...
          }
    
  8. 按一下頂端的「」。

OAuth 驗證

某些 OAuth 範圍允許存取 Google 使用者資料,因此屬於敏感範圍。如果您的指令碼專案使用的範圍允許存取使用者資料,該專案必須先完成 OAuth 用戶端驗證,您才能將專案以網頁應用程式或外掛程式公開發布。詳情請參閱下列指南:

受限制的範圍

除了機密範圍外,某些範圍會歸類為受限制,且適用其他有助於保護使用者資料的規則。若您打算發布使用一或多個受限制範圍的網頁應用程式或外掛程式,應用程式必須符合所有指定限制才能發布。

嘗試發布前,請先詳閱受限制範圍的完整清單。如果您的應用程式包含上述任一項目,在發布前請務必遵守特定 API 範圍的額外規定