每個 Apps Script 專案都會使用 Google Cloud 管理授權、進階服務和其他詳細資料。如要指定及管理這些設定,每個 Apps Script 專案都有相關聯的 Google Cloud 專案。指令碼專案可使用 Apps Script 自動建立的「預設」專案,或您自行建立的標準專案。一般來說,預設專案適用於日常或簡易指令碼,但您應將標準專案用於複雜、商業品質或您想發布的任何應用程式。
您隨時可以從預設專案切換至標準專案,但無法切換回預設專案。建議您選取指令碼在開發階段早期使用的 Cloud 專案。稍後切換可能會造成複雜性,例如要求使用者重新授權。
預設 Cloud 專案
建立 Apps Script 專案時,Apps Script 會建立在背景執行的預設 Cloud 專案。
- 大多數指令碼都不需要查看或調整這個預設專案。Apps Script 會處理與 Google Cloud 之間的必要互動。舉例來說,如果您在 Apps Script 編輯器中啟用進階服務,則當您儲存指令碼專案時,Apps Script 會在預設 Cloud 專案中啟用進階服務。
- 對於某些指令碼,您必須與 Google Cloud 控制台互動。在這類情況下,您的指令碼必須改用標準 Cloud 專案。舉例來說,如要在 Google Cloud 控制台中查看 Google Cloud 記錄檔,您的指令碼必須使用標準專案。
根據預設,Cloud 專案的 Identity and Access Management (IAM) 政策設有一個項目,也就是做為預設專案擁有者的 Google 服務帳戶。Google 服務帳戶為 appsdev-apps-dev-script-auth@system.gserviceaccount.com
。
查看或更新預設 Cloud 專案
大多數使用者無法直接在 Google Cloud 控制台中搜尋、查看或編輯預設專案。如果您是管理員,請參閱「查看預設 Google Cloud 專案」一文。
如果您是在 2019 年 4 月 8 日前建立指令碼專案,可能會使用可在 Google Cloud 控制台中存取的預設專案。如要存取預設專案,請前往指令碼專案的設定,然後按一下專案編號。
刪除預設 Cloud 專案
如果您是管理員,可以和標準 Cloud 專案一樣刪除預設 Cloud 專案。請參閱「刪除 Apps Script Cloud 專案」。
如果您不是管理員,則無法刪除預設專案。然而,在下列情況中,Apps Script 會刪除預設專案:
- 如果您刪除指令碼專案,或將其切換為使用標準專案,Apps Script 會刪除附加在指令碼的預設專案,以及其中包含的任何設定或資訊。
- 如果指令碼未執行超過 180 天,Apps Script 會刪除相關聯的預設專案。如果在 Apps Script 刪除預設專案後執行指令碼,Apps Script 就會為指令碼建立一個。
標準 Cloud 專案
除非您需要手動設定專案,否則對大部分指令碼專案而言,預設 Cloud 專案是最佳選項。在這種情況下,您必須將指令碼專案切換為使用標準專案。
以下各節說明 Apps Script 何時需要標準專案、這類專案的屬性,以及這些專案的常見工作。您只能使用標準專案執行以下工作。
Apps Script 需要標準 Cloud 專案的情況
在下列情況中,您必須使用標準專案:
- 如何在 Google Workspace Marketplace 中以外掛程式的形式發布指令碼專案。
- 驗證指令碼專案的 OAuth 用戶端。
- 如有應用程式需要透過 Apps Script API 的
scripts.run
方法,在指令碼專案中執行函式。 - 如要在 Google Cloud 控制台中查看指令碼專案的 Google Cloud 記錄檔,Google Cloud 控制台提供更多篩選和查看記錄檔的工具,而且比 Apps Script 資訊主頁的簡化檢視畫面更實用。
- 如要使用 Error Reporting 查看指令碼專案的錯誤報告。
- 建立檔案開啟對話方塊。
- 在其他情況下,需要手動控管專案的 Google Cloud 設定時。
標準 Cloud 專案屬性
標準專案的屬性如下:
- 您可以直接透過 Google Cloud 控制台存取專案的所有 Google Cloud 設定。這可讓您啟用 API、調整授權憑證,以及設定其他詳細資料。
- 當您刪除指令碼專案,或將其切換為使用其他標準專案時,原本的標準專案仍然可以重複使用。
- 在指令碼專案中啟用進階服務時,您必須在標準專案中手動啟用對應的 API。
- 多個指令碼專案和其他應用程式可共用同一個標準專案。如要以外掛程式的形式將指令碼專案發布至 Google Workspace Marketplace,則該指令碼專案必須擁有自己的標準專案。已發布的應用程式無法與其他應用程式共用 Cloud 專案。
- 如要使用 Apps Script API 的
scripts.run
方法,從其他應用程式的指令碼專案中執行函式,指令碼專案和呼叫應用程式必須共用同一個標準專案。 - 當 Apps Script 要求使用者授權使用標準專案的指令碼時,系統會使用 Cloud 專案名稱識別指令碼 (而非指令碼專案名稱)。因此,請務必設定適當的 Cloud 專案名稱。
存取標準 Cloud 專案
如要存取與指令碼專案相關聯的標準專案,請按照下列步驟操作:
- 開啟 Apps Script 專案。
- 按一下左側的「專案設定」圖示 。
- 在「Google Cloud Platform (GCP) 專案」下方,按一下專案編號。
您也可以在 Google Cloud 控制台的「管理資源」頁面直接找到標準專案。
在標準 Cloud 專案中啟用 API
Apps Script 應用程式通常需要存取其他 Google API 的權限。如要這麼做,您必須在對應的 Cloud 專案中啟用 API。按照下列步驟啟用 API:
- 開啟 Cloud 專案。
- 依序點選「選單」圖示 >「API 和服務」。
- 點選「啟用 API 和服務」。
- 在搜尋框中輸入要啟用的 API,然後按下 Enter 鍵。
- 在搜尋結果中按一下 API,然後按一下「Enable」即可為這個 Cloud 專案啟用 API。
系統可能會提示您接受 Google API 或 Google Cloud 的《服務條款》。接受之前,請先詳閱《服務條款》。
視應用程式而定,您可能也需要在「APIs & Services」(API 和服務) 資訊主頁中選取 API,以設定 API。
決定標準 Cloud 專案的 ID 和編號
所有 Cloud 專案都有專案名稱、專案 ID 和專案編號。有時候,您必須具備這些 ID 才能設定服務或完成其他工作。
如要判斷標準專案的 ID 和編號,請按照下列步驟操作:
- 開啟 Cloud 專案。
- 依序按一下右上方的「更多」圖示 >「Project settings」。
- 在產生的「Settings」(設定) 面板中查看「Project name」(專案名稱)、「Project ID」(專案 ID),以及「Project number」(專案編號)。「專案編號」只包含數字,而「專案 ID」是由英數字元組成。您可以編輯「Project name」(專案名稱),系統會在授權提示期間向使用者顯示該專案名稱。
在 Google Cloud 控制台中查看 Google Cloud 記錄檔和錯誤報告
如果指令碼專案使用的是 Google Cloud Logging 或錯誤報告,就可以按照下列步驟在 Google Cloud 控制台中查看這些記錄檔和報表:
- 開啟 Cloud 專案。
- 按一下「選單」圖示 。
- 向下捲動至「Operations」(作業) 部分,然後依序按一下「Logging」>「記錄檔探索工具」。
- 如要查看錯誤報告,請向下捲動至「Operations」(作業) 部分,然後按一下「Error Reporting」。如果系統提示您設定錯誤報告,這表示您的指令碼專案尚未記錄任何例外狀況。
完成 OAuth 同意畫面
當您使用需要 OAuth 的服務時,Google 會提示使用者為這些服務進行授權。OAuth 同意畫面設定可讓您設定 Google 向使用者顯示的部分資訊,例如應用程式名稱和服務條款網址。
預設 Cloud 專案會自動根據 Apps Script 專案詳細資料建立同意畫面,因此您無法調整這些設定。標準 Cloud 專案可讓您自訂這項資訊您可以設定指令碼的同意畫面,步驟如下:
- 開啟 Cloud 專案。
- 依序按一下「選單」圖示 >「API 和服務」>「憑證」。
- 按一下 [Configure consent screen] (設定同意畫面)。
- 填寫同意畫面工作流程的每個部分。
- 如要在工作流程中每個階段記錄變更,請按一下「Save and continue」(儲存並繼續)。
建立 OAuth 憑證
Apps Script 通常會針對指令碼使用的服務設定 OAuth。對於某些應用程式,您必須建立額外的 OAuth 憑證 (用戶端 ID 和用戶端密鑰)。您只能在標準專案中執行這項操作。
如要為指令碼專案建立用戶端 ID 和用戶端密鑰,請按照下列步驟操作:
- 開啟 Cloud 專案。
- 依序按一下「選單」圖示 >「API 和服務」>「憑證」。
- 按一下「Create credentials」(建立憑證) >「OAuth client ID」(OAuth 用戶端 ID)。
- 在「Application type」下方,選取您的應用程式類型,然後視需要填寫顯示的表單。完成後,請按一下「建立」。
- 在隨即顯示的對話方塊中,按一下「Download JSON」。您可以使用這個檔案設定 OAuth。
為標準 Cloud 專案新增其他擁有者
您可以為標準專案新增其他擁有者或其他角色。如果您對專案進行協作,這有助於確保團隊中隨時有人能存取指令碼專案的 Google Cloud 設定。
您可以在標準專案中新增其他擁有者或其他角色,方法如下。您必須具備專案的編輯權限,才能進行下列變更:
- 決定協作者。建議您建立或使用現有的 Google 群組。您也可以在協作者清單中指定網域,以納入該網域中的所有使用者。
- 開啟指令碼的 Cloud 專案。
- 依序點選「Menu」(選單) >「IAM 與管理」>「IAM」。
- 按一下頂端的「新增」。
- 按照畫面上的指示,將一或多個新成員及其角色新增至 Cloud 專案。您可以將個別電子郵件、Google 網路論壇或網域新增為新成員。
- 點按「儲存」。
將多個指令碼分組至單一 Cloud 專案
您可以有多個 Apps Script 專案共用同一個標準 Cloud 專案。方法是建立標準專案,然後在每個指令碼專案上切換來使用該專案。您無法透過預設專案執行這項操作。
使用其他標準 Cloud 專案
您可以切換指令碼專案,使其使用不同的標準 Cloud 專案。如果您的指令碼需要手動設定 Cloud 專案,您必須從預設專案切換至標準專案。如要進一步瞭解使用標準專案的時機,請參閱標準 Cloud 專案。
切換至其他標準 Cloud 專案的影響
如果將指令碼從預設專案或其他標準專案切換至其他標準專案,就會產生以下影響:
- 如果您已為指令碼啟用進階服務,就必須在新 Cloud 專案中開啟對應的 API。在前一個 Cloud 專案中,與進階服務相關聯的任何資料都會遺失。如要瞭解如何在 Cloud 專案中啟用 API,請參閱「啟用 Google Workspace API」。
- 如果您的指令碼使用內建的 Google 雲端硬碟服務,您必須在標準 Cloud 專案中開啟 Drive API。
在標準 Cloud 專案中開啟 Drive API:
- 所有先前已授權指令碼的使用者都必須重新授權。在大部分的情況下,凡是先前已授權應用程式與新專案建立關聯的使用者,也必須重新授權。
- 如果指令碼與 Google Workspace Marketplace 中的應用程式資訊相關聯,系統不會將應用程式資訊、使用者和評論轉移至新專案。您必須在新專案中建立應用程式資訊,且使用者必須重新安裝應用程式。如要瞭解如何建立新的應用程式資訊,請參閱「發布應用程式」。
- 您無法將指令碼切換回預設專案。Apps Script 會在您將指令碼設為使用標準專案後刪除預設專案。
切換至其他標準 Cloud 專案
如要將指令碼現有的 Cloud 專案切換至其他 Cloud 專案,請按照下列步驟操作:
- 如果您沒有合適的 Cloud 專案,請按照建立專案的操作說明建立一個專案。設定好記的專案名稱,以便在 Google Cloud 控制台的「管理資源」頁面中找到。要求使用者授權指令碼時,Apps Script 會使用這個名稱。
- 如要使用現有專案,請開啟 Google Cloud 控制台的「管理資源」頁面,然後找出要使用的現有專案。您必須具備專案的專案瀏覽器和 OAuth 設定編輯者角色,或具備同等權限的角色。您無法使用 Apps Script 自動建立的專案。
- 決定 Cloud 專案的專案編號。
- 開啟要替換 Cloud 專案的指令碼。
- 按一下左側的「Project Settings」圖示 。
- 按一下「Google Cloud Platform (GCP) 專案」下方的「變更專案」。
- 輸入新的專案編號,然後按一下「設定專案」。
雲端專案和共用雲端硬碟
共用雲端硬碟 (舊稱「團隊雲端硬碟」) 提供共用空間,可讓雲端硬碟群組的使用者對 Apps Script 專案和雲端硬碟文件進行協作。與團隊共同開發指令碼、外掛程式和網頁應用程式時,共用雲端硬碟很實用,但是對於您在舊版預設 Cloud 專案中可執行的操作設有一些限制。
以下限制清單說明 Cloud 專案與共用雲端硬碟的互動方式:
- 如果您的指令碼專案使用標準專案,則指令碼專案位於共用雲端硬碟中,就不會有其他限制。
- 如果您的指令碼專案使用在 2019 年 4 月 8 日當天或之後建立的預設專案,當指令碼專案位於共用雲端硬碟時,則沒有其他限制。
- 如果您的指令碼專案使用 2019 年 4 月 8 日之前建立的預設專案,當指令碼專案位於共用雲端硬碟時,則適用下列限制:
- 您無法透過 Apps Script UI 或 Google Cloud 控制台存取預設專案。這項限制可避免您執行需要直接存取專案的動作。
- 您無法啟用進階服務。 如要啟用進階服務,請切換至標準專案。
- 您將現有的 Apps Script 專案移至共用雲端硬碟時,Google 會限制預設 Cloud 專案的存取權。如果在移動前擁有存取權,您還是可以存取預設專案。舉例來說,如果您在「我的雲端硬碟」資料夾中建立指令碼,然後移至共用雲端硬碟,仍然可以存取該指令碼的 Cloud 專案。共用雲端硬碟的協作者可能無法這麼做。
- 指令碼會保留移至共用雲端硬碟前的 Cloud 專案名稱。即使您變更共用雲端硬碟上的專案名稱,授權指令碼的使用者仍會在授權對話方塊中看到舊名稱。
為避免舊版指令碼的上述限制,請切換至標準專案。
取得 Apps Script Cloud 專案清單
如果您具備貴機構的 Apps Script 專案資料夾的 resourcemanager.projects.list
權限,就可以查看該資料夾中的所有標準和預設 Apps Script Cloud 專案。
- 開啟 Google Cloud 控制台的「管理資源」頁面。
- 複製「Apps Script」資料夾旁邊的 ID。
- 依序按一下「Filter」>「Parent ID」,然後貼上 Apps Script 資料夾 ID。
刪除 Apps Script Cloud 專案
如要刪除 Apps Script Cloud 專案,請按照「取得 Apps Script Cloud 專案清單」下方的步驟操作,選取要刪除的專案,然後按一下「Delete」(刪除)。
如要使用 gcloud
刪除 Apps Script 專案,請使用下列指令。
gcloud projects list --filter='parent.id=APPS_SCRIPT_FOLDER_ID'
gcloud projects delete PROJECT_ID
如要進一步瞭解如何刪除 Cloud 專案,請參閱「關閉 (刪除) 專案」一文。