2015-11-02 122 views
0

我在谷歌的域名,我試圖提取表單受訪者的電子郵件(因爲他們必須在簽署填寫表格,自動收集)getRespondentEmail()返回我的電子郵件沒有應答

窗體但結果是我一直收到我的電子郵件而不是表格回覆者?

這是包含在指定表格內,因此使用

變種形式碼= FormApp.getActiveForm()

,但我不明白爲什麼我每次都讓我自己的電子郵件?

function GetRespondersEmail(){ 
 
    var form = FormApp.getActiveForm(); 
 
    
 
    var responses=form.getResponses(); 
 
/// this will give you all responses of your form as an array//// 
 

 
///iterate the array to get respondent email id/// 
 

 
for(var i = 0; i < responses.length; i++){ 
 
    var emailTo = responses[i].getRespondentEmail(); 
 
    
 
    Logger.log('emailTo = '+emailTo); 
 
    return emailTo; 
 
} 
 
};

回答

1

getRespondentEmail():

獲取誰提交該響應,如果Form.setCollectEmail(收集)設置啓用的人的電子郵件地址。

您是否將Form.setCollectEmail(collect)設置爲true?

注意:此功能僅適用於Google Apps for Business用戶,Google Apps for Education或Google Apps for Your Domain創建的表單。其他類型Google帳戶的電子郵件地址無法收集。對於使用其他Google帳戶創建的表單,此方法會引發腳本異常。

這裏是編輯: 我改變了一下你的代碼。問題是你在循環中返回一個值,所以你永遠不會完成循環,只返回第一個響應的電子郵件。

function GetRespondersEmail(){ 
    var form = FormApp.getActiveForm(); 
    var emailTo = [] 
    var responses=form.getResponses(); 
/// this will give you all responses of your form as an array//// 

///iterate the array to get respondent email id/// 

for(var i = 0; i < responses.length; i++){ 
    emailTo[i] = responses[i].getRespondentEmail();  
} 
    Logger.log('emailTo = '+emailTo); 
    return emailTo; 
}; 

我試過這個,似乎回答您的需求。

+0

啊超...是的我現在看到了,太棒了!您是否知道我將如何隔離當前正在提交或重新提交修改表格的用戶電子郵件? –

4

好吧,所以爲我學到的教訓,我想要做的就是訪問填寫表單的用戶的單個電子郵件地址。因此,原來我可以用函數onFormSubmit() 即

function onFormSubmit(e) { 
    var emailTo = e.response.getRespondentEmail(); 
} 

除非我忽視的東西,這是簡單得多,比我在嘗試上述完全取代上述功能。

相關問題