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 設定。這點對於外掛程式來說尤其重要。
協作和觸發條件
協作專案時,您建立的任何可安裝的觸發事件都不會與有權存取專案的使用者共用。如果您需要為所有協作者設定一致的觸發事件,可以使用指令碼服務,在執行階段以程式輔助方式建立觸發事件。詳情請參閱「以程式輔助方式管理觸發條件」。
協作和程式庫
專案協作者可使用專案中包含的程式庫。不過,如果他們對所包含的程式庫至少沒有讀取權限,就無法使用這些程式庫,在這種情況下,指令碼會擲回錯誤。如要進一步瞭解程式庫,請參閱「管理程式庫」。
協作和使用者屬性
使用者屬性是指建立屬性的使用者專屬屬性。也就是說,專案協作者無法查看或存取您的使用者資源,而您也無法查看或存取他們的資源。如果您想與協作者分享專案特定屬性,請使用指令碼屬性。詳情請參閱資源指南。