2017-07-07 20 views
0

私は、GoogleフォームのGoogleフォームのスプレッドシートの回答を「getEditResponseUrl()」と一緒に検索してビルドに役立てることができる非常に優れたGoogleスクリプトを見つけましたGoogleフォームを通じて変更可能なデータベースです。アップロードされたファイルのURLをGoogleフォームから取得する

しかし、私は "ファイルのアップロードに関する質問"のURLを取得するのに苦労しています。ユーザーがファイルをアップロードするはずの質問は、4番目の「ファクト」です。

私のスプレッドシートに表示される回答は「[Ljava.lang.Object; @ 508c8b8b」ですが、ファイルは表示されません。

ユーザーがアップロードしたファイルのURLを取得できるように、この作業をどのように行うか考えてみましょうか?

はありがとうと種類が

var ss = SpreadsheetApp.openById("spreadsheeturl"); // to be customised 
var responseSheet = "Database"; // to be customised 

function submitFormFunc(e) { 
var items = e.response.getItemResponses(); 
    var responses={}; 
    for(var i = 0; i< items.length; i++) { 
    responses[items[i].getItem().getTitle()]=items[i].getResponse(); 
    } 

    var responseRow = []; 
    responseRow.push(e.response.getTimestamp().toString()); 
    responseRow.push(e.response.getId()); 
    responseRow.push(responses["Challenge"]); // to be customised 
    responseRow.push(responses["Client"]); 
    responseRow.push(responses["Date"]); 
    responseRow.push(responses["Facture"]); 
// to be customised 
    // add as many as needed 

    responseRow.push(FormApp.getActiveForm().getResponse(e.response.getId()).getEditResponseUrl()); 

    var isNewItem = alreadyExist(ss,e.response.getId()); 
    if(isNewItem<0){ 
    ss.getSheetByName(responseSheet).appendRow(responseRow); 
    } 
    else{ 
    ss.getSheetByName(responseSheet).getRange(isNewItem+2, 1, 1, 6).setValues([responseRow]); 
    } 
} 

function alreadyExist(ss,id){ 
    var ids = ss.getSheetByName(responseSheet).getRange("B2:B").getValues(); 
    for(var i=0; i< ids.length; i++){ 
    if(ids[i][0]===id){ 
     return(i); 
    } 
    } 
    return(-1); 
} 

答えて

0

に関してはここでGoogleドライブのURLにアップロードされたファイルIDを変換し、複数のアップロードの場合は結果を連結しForm Notifications add-onからの抜粋です。

var urls = answer.toString().split(",").map(function(f) { 
       return "https://drive.google.com/open?id=" + f; 
      }).join(", "); 
関連する問題