Apps Script 提供多項功能,可協助您和其他開發人員共同建構及維護指令碼、外掛程式和網路應用程式。
合作拍片基本概念
如要協作處理專案,您和協作者都必須擁有 Apps Script 專案檔案的編輯者存取權 (如果是繫結指令碼,則為其容器)。這樣一來,團隊中的每個人都能查看及變更 Apps Script 程式碼。編輯者也可以建立新的程式碼版本、發布外掛程式,以及將指令碼部署為網頁應用程式或 Apps Script API 的可執行檔。
您可以預先規劃如何處理專案、外掛程式或網頁應用程式的編輯、審查、版本管理,以及 (如適用) 部署和發布作業,協助團隊順利完成工作。獨立專案通常最容易協作,因為這類專案會直接顯示在 Google 雲端硬碟中,而且是開發外掛程式和網頁應用程式時建議使用的專案類型。
協作時常見的問題是,指令碼專案擁有者離開團隊,但未將專案擁有權轉移給團隊中的其他成員。這可能會導致您無法維護或更新專案。將指令碼專案放在共用雲端硬碟中,即可避免這個問題,因為共用雲端硬碟中的檔案沒有特定擁有者。
使用 clasp
指令列工具協作
clasp
可讓您在 script.google.com 和本機檔案系統之間同步處理專案。如果您和協作者使用 git
等原始碼控管管理軟體,就能簡化及自動化程式碼開發作業。
詳情請參閱使用 clasp
的指令列介面指南。
使用共用雲端硬碟協作
共用雲端硬碟 (舊稱「小組雲端硬碟」) 是 Google 雲端硬碟中的共用空間,可讓雲端硬碟使用者群組更有效率地協作。共用雲端硬碟中的檔案是由整個群組共同擁有,並不屬於個別成員。也就是說,協作者離開群組時,不會帶走檔案擁有權和控制權。
共用雲端硬碟也允許您跨網域移動檔案,也就是說,一個網域中的共用雲端硬碟可以有來自其他網域的協作者,這些協作者可以將檔案從該網域移至共用雲端硬碟。這對 Apps Script 開發人員來說非常實用,因為團隊可藉此為不同網域的客戶開發外掛程式、網頁應用程式或其他程式碼。
使用共用雲端硬碟協作處理 Apps Script 專案時,請注意下列事項:
- 如果協作者擁有共用雲端硬碟的編輯權限,即可在共用雲端硬碟中建立或移動新檔案。他們可以查看及編輯指令碼專案、執行指令碼、建立新版指令碼,以及發布外掛程式。
- 如要將指令碼部署為網頁應用程式或 Apps Script API 的可執行檔,建立部署項目的帳戶必須與指令碼所在的共用雲端硬碟位於相同網域。
- 共用雲端硬碟可讓您與群組外部使用者共用共用雲端硬碟中的特定檔案,並更新這些檔案的編輯和檢視權限,就像處理其他雲端硬碟檔案一樣。不過,如果使用者是共用雲端硬碟所屬團隊的成員,您就無法降低他們對特定檔案的存取權。舉例來說,如果使用者對共用雲端硬碟具有編輯權限,您就無法將該權限變更為僅限檢視共用雲端硬碟中的特定檔案。
- 具備共用雲端硬碟完整存取權的協作者也可以刪除檔案和 Apps Script 專案,以及將檔案移出共用雲端硬碟。
- 所有繫結至容器的指令碼都會使用為容器檔案定義的相同檢視者和編輯者存取權清單。舉例來說,如果您有 Google 試算表的編輯權限,就能編輯附加的任何 Apps Script 專案程式碼。將這類容器檔案放入共用雲端硬碟後,共用雲端硬碟的協作者就能存取指令碼,存取權與容器檔案相同。
- 如果指令碼專案位於共用雲端硬碟中,系統可能會限制存取其 Cloud Platform (GCP) 專案。詳情請參閱「GCP 專案和共用雲端硬碟」指南一節。
- 網頁應用程式 如果部署在某個網域,但擁有權變更為其他網域中的共用雲端硬碟或帳戶,就會停止運作。如要修正這個問題,請將指令碼移回原始網域。
- 同樣地,如果透過共用雲端硬碟將部署為 Apps Script API 可執行檔的指令碼專案從一個網域移至另一個網域,則透過 API 呼叫時,該專案會停止運作。如要修正這個問題,請將指令碼移回原始網域。
透過共用資料夾協作
如果無法與共用雲端硬碟協作,可以改用共用資料夾。如果您在其他使用者可存取的 Google 雲端硬碟資料夾中建立或移動 Apps Script 專案,他們會沿用該資料夾的存取權,存取該 Apps Script 專案。例如:
- 如果使用者有權編輯資料夾,就能編輯或刪除 Apps Script 專案,以及執行指令碼。
- 如果使用者只有資料夾的檢視權限,則可以查看 Apps Script 專案並執行指令碼。
透過專案共用功能協作
您可以直接與所有協作者共用專案,一起處理專案。您可以直接共用一般 Google 雲端硬碟資料夾或共用雲端硬碟中的指令碼專案。如果使用這個方法,建議您仔細規劃指令碼的長期擁有者和維護者。
獨立專案會以檔案形式顯示在 Google 雲端硬碟中,您可以像分享其他檔案一樣分享專案。詳情請參閱「共用檔案和資料夾」。
繫結至容器的專案不會顯示在 Google 雲端硬碟中。如要共用繫結至容器的專案,請共用父項容器檔案。舉例來說,如果指令碼繫結至 Google 試算表,只要將使用者設為試算表的編輯者,就能讓對方編輯指令碼。繫結容器的專案會沿用容器檔案的檢視者和編輯者存取權設定。
所有繫結至容器的指令碼都會使用為容器檔案定義的相同擁有者、檢視者和編輯者存取權清單。無論是誰建立新指令碼專案,容器擁有者都會取得擁有權。
協作和專案資源
資源是與專案相關聯的實體,但獨立於專案程式碼存在。本節說明協作處理專案時,專案資源 (尤其是 Cloud Platform 專案、觸發條件、程式庫和使用者屬性) 會受到哪些影響。
協作和 Google Cloud 專案
每個 Apps Script 專案都有相關聯的 Google Cloud 專案。Google Cloud 專案有自己的擁有者、編輯者和其他角色, 這與可存取指令碼專案的使用者可能不同。
如果指令碼專案要發布為外掛程式,就必須使用標準 Google Cloud 專案。如果應用程式使用標準 Google Cloud 專案,建議您設定 Google Cloud 擁有者和角色,確保所有協作者都具備適當的存取層級。這樣一來,您就不會因為專案擁有者已離開貴機構,而無法存取專案的 Cloud 設定。這對外掛程式來說尤其重要。
協作和觸發條件
在專案中協作時,您建立的任何可安裝的觸發條件都不會與有權存取專案的使用者共用。如要為所有協作者設定一致的觸發條件,可以使用 Script 服務,在執行階段以程式輔助方式建立觸發條件。詳情請參閱「以程式輔助方式管理觸發條件」。
協作與程式庫
專案協作者可以使用專案中包含的程式庫。 不過,如果使用者沒有至少讀取層級的存取權,就無法使用這些程式庫,而且指令碼會擲回錯誤。如要進一步瞭解程式庫,請參閱「管理程式庫」。
協作和使用者屬性
「使用者屬性」 是使用者專屬的屬性,也就是說,專案協作者無法查看或存取您的使用者屬性,您也無法查看或存取對方的使用者屬性。如要與協作者共用專案專屬屬性,請使用指令碼屬性。詳情請參閱屬性指南。