2012-09-26 61 views
2

我試圖完成我認爲在Google Apps中相當簡單的一項自動化操作,但我對Google腳本很陌生,無法計算出觸發器來執行腳本工作。在Google Apps中添加新組員的自動化 - 使用Google腳本

下面是一些僞代碼說明什麼,我想我需要做的:

//When a new group is created execute the function below 

function addNewSalesTeamGroupMember() { 
    //Get the new group's id/email address 
    //Add it as a new member of the Sales Team group ([email protected]) 
} 

這裏是手頭上的任務的一些背景:

我有一個谷歌Apps帳戶正在使用Groups作爲電子郵件轉發器。例如,有50個分組,每個分組有1個成員,用於在銷售團隊成員的域上提供電子郵件帳戶(例如,[email protected]是一個組,其唯一目的是轉發給Sales Guy的第三方電子郵件地址: [email protected])。還有另一個小組[email protected],其中包含每個銷售團隊成員,因此經理可以立即向整個銷售小組發佈通知。

我的任務是編寫一個腳本,它會在創建時自動將創建的所有新銷售成員添加到SalesTeam組中。因此,需要在添加新的銷售成員時(即,創建新的組)時運行。

我已經得到了API for updating Groups,但是我找不到任何資源來描述如何編寫觸發器來告訴腳本在創建新組時執行,從而能夠檢索新組的地址。換句話說,我想學習如何在谷歌腳本寫的我的僞代碼這一部分:

//When a new group is created execute the function below 

回答

0

這是可行的,但你需要在這裏做一些東西。 由於谷歌應用程序腳本不能看到你是否創建了一個組,你需要比較的東西。 首先執行該代碼獲取您的所有團體和把它們放在一個數據庫:

function startUp() { 
    var groups = GroupsManager.getAllGroups(); 
    var db = ScriptDb.getMyDb(); 
    for (var a in groups){ 
    var ob = {group: groups[a].getId()}; 
    db.save(ob); 
    } 
} 

所以現在我們有一個充斥着我們的團體,我們要做出一個函數來檢查是否有新組加入數據庫:

function control() { 
    var db = ScriptDb.getMyDb(); 
    var results = db.query({}); 
    var groups = GroupsManager.getAllGroups(); 


    while (results.hasNext()) { 
    var result = results.next(); 
    var group = GroupsManager.getGroup(result.group); 
    for (var a in groups){ 
     if (groups[a].getId() == group.getId()){ 
     //things stay the same remove it from the groups array 
     groups.splice(a,1); 
     break; 
     } 
    } 
    } 
    //whats left in the array should be a new group 
    for (var a in groups){ 
    //save it first 
    var ob = {group: groups[a].getId()}; 
    db.save(ob); 
    //And now tell your script to add this email to the group you want 
    GroupsManager.getGroup("[email protected]mydomain.com").addMember(groups[a].getId()); 
    } 
} 

現在去你的腳本觸發和安裝一次驅動觸發你希望多久才能執行該功能。

隨着親切的問候,

托馬斯麪包車Latum

+0

非常感謝托馬斯。這是否意味着我們僅限於使用Google Apps腳本的時間驅動觸發器?在完成某個動作(例如,添加新組時)時,無法執行腳本,或者除了腳本之外沒有開發人員工具來檢測何時執行動作?再次感謝您的指導。溫暖,凱文 –

+0

您好,感謝您的投票!我們無法在谷歌應用程序腳本中感知何時創建了一個組。但是,您可以採用完全不同的方法,並創建一個自定義UserInterface來創建新組。 – Thomas