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 呼叫時停止運作。只要將指令碼移回原始網域,即可修正這個問題。
透過共用資料夾協同合作
如果無法透過共用雲端硬碟進行協作,可以改用共用資料夾。如果您建立 Apps Script 專案或移動至其他使用者可存取的 Google 雲端硬碟資料夾,會沿用他們對資料夾的 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 設定。這點對於外掛程式來說尤其重要。
協作和觸發條件
協作專案時,您建立的任何可安裝觸發事件都不會與有權存取專案的使用者共用。如果您需要為所有協作者設定一致的觸發事件,可以使用指令碼服務,在執行階段以程式輔助方式建立觸發事件。詳情請參閱「以程式輔助方式管理觸發條件」。
協作和程式庫
專案合作者可使用專案中包含的程式庫。不過,如果他們對所包含的程式庫至少沒有讀取權限,就無法使用這些程式庫,在這種情況下,指令碼會擲回錯誤。如要進一步瞭解程式庫,請參閱「管理程式庫」。
協作和使用者屬性
「使用者屬性」是指建立者專屬的屬性。也就是說,專案協作者無法查看或存取您的使用者資源,而您也無法查看或存取他們的資源。如果想與協作者共用專案專屬屬性,請使用指令碼屬性。詳情請參閱資源指南。