授權範圍

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

在這個流程中,UI 會告知使用者指令碼想要執行的操作。例如,指令碼可能會要求讀取使用者的電子郵件訊息,或在日曆中建立活動。指令碼專案會將這些個別權限定義為 OAuth 範圍

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

在授權流程中,Apps Script 會將必要範圍的說明以淺顯易懂的方式呈現給使用者。舉例來說,如果您的指令碼需要試算表的唯讀存取權,則資訊清單的範圍可能包含 https://www.googleapis.com/auth/spreadsheets.readonly。在授權流程期間,設有此範圍的指令碼會要求使用者允許這個應用程式「查看您的 Google 試算表」。

部分範圍包含其他範圍。例如,授權範圍 https://www.googleapis.com/auth/spreadsheets 允許讀取和寫入試算表。

查看範圍

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

  1. 開啟指令碼專案。
  2. 按一下左側的「總覽」
  3. 查看「專案 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,則必須先遵守特定 API 範圍的其他規定才能發布。