2017-09-26 14 views
1

私はGoogleフォームに表示される回答に基づいてGoogleドライブにフォルダを作成しようとしています。 私はフォームに自分のメールアドレスを入力するようにユーザーに依頼しました。このメールアドレスを使用してGoogleドライブにフォルダを作成したいと考えています。メールアドレスをGoogleフォームから抽出し、メールIDに基づいてGoogleドライブにフォルダを作成します

私は以下の(最適化されていない)コードを作成してフォルダを作成しました!

function myfunction() { 
var form = FormApp.openById('1EDIT8BSfCUdKxgMLgIjP9VJGPJlQFMHZFpQqa6R_bMs'); 
var formResponses = form.getResponses(); 
for (var i = 0; i < 1; i++) { 
var formResponse = formResponses[i]; 
var itemResponses = formResponse.getItemResponses(); 
for (var j = 0; j < 1; j++) { 
var itemResponse = itemResponses[j]; 
var email = itemResponses[0].getResponse(); 
DriveApp.createFolder(email)}}; 
} 

私はすべての応答がトリガ機能を使用して記録されているが、何らかの理由で作成したフォルダは、電子メールIDは、ユーザーが入力した後はありません新規フォルダを作成することができています。ここで

は実行トランスクリプトです -

[17-09-26 13:07:39:569 PDT] Starting execution 
[17-09-26 13:07:39:655 PDT] 
FormApp.openById([1EDIT8BSfCUdKxgMLgIjP9VJGPJlQFMHZFpQqa6R_bMs]) [0.079 
seconds] 
[17-09-26 13:07:40:495 PDT] Form.getResponses() [0.839 seconds] 
[17-09-26 13:07:40:496 PDT] FormResponse.getItemResponses() [0 seconds] 
[17-09-26 13:07:40:496 PDT] ItemResponse.getResponse() [0 seconds] 
[17-09-26 13:07:41:315 PDT] 
DriveApp.createFolder([0B5FjIzaVY166ZVdjc251T2VnUjA]) [0.818 seconds] 
[17-09-26 13:07:41:317 PDT] Execution succeeded [1.74 seconds total runtime] 

あなたはDriveapp.Createfolderは、いくつかの未知の値をとるお気づきのように! これを修正するにはどうすればよいですか?

+0

この「DriveApp.createFolder([0B5FjIzaVY166ZVdjc251T2VnUjA])」を参照してください。私の推測は、それは新しいフォルダのIDです。では、何を修正したいですか? – Cooper

+0

実行記録を見るのは良いことですが、 'email'の値が何であるかを知る必要があり、' Logger.log( 'email:' + email ')を使ってログに何かを印刷することができます。 'var email = itemResponses [0] .getResponse(); Logger.log( 'email:' + email) 'コードを実行し、ログを表示します。 'email'の価値は何ですか? –

+0

@CooperそれはIDかもしれない、私は確信していない!しかし、私はフォームに存在する電子メールのフィールドにユーザーが入力したテキストをGoogleドライブに保存する必要があります。ユーザーがそのフォームを入力するたびにフォルダが作成されていますが、フォルダの名前はフォルダのIDではなく、ユーザーの電子メールアドレスにする必要があります。たとえば、ユーザーが「Cooper @ Gmail.com」と入力した場合、ドライブに[email protected]という名前のフォルダを作成します。 –

答えて

2

イベントオブジェクトを使用して応答IDを取得し、IDで正しい応答を取得します。

function myfunction(e) { 
    var email, form, formResponse, responseID; 

    form = FormApp.openById('Form ID'); 

    responseID = e.response.getId(); 

    formResponse = form.getResponse(responseID); 

    itemResponses = formResponse.getItemResponses(); 

    email = itemResponses[0].getResponse();//Index must be correct 

    DriveApp.createFolder(email); 
} 
関連する問題