2017-02-08 11 views
1

Когда я вызываю getContent() в файл формы, он возвращает empty/null.Google api - как вы получаете текст в Формах?

Как получить текстовое содержимое файла формы на Google Диске?

+0

Я думаю, что для получения содержимого формы, найденной на Google Диске, вам придется использовать сервис Forms (который представляет собой совершенно отдельный API, чем диск) –

ответ

2

Вы правы, что вам нужно использовать Forms Service для извлечения содержимого вашей формы Google.

Если вы хотите получить содержимое формы (вопросы с вариантами выбора), вам необходимо использовать метод getItems(), чтобы получить массив всех элементов в форме.

// Open a form by ID and log the responses to each question. 
var form = FormApp.openById('Form_ID'); 

// Logs the questions 
var items = form.getItems() 
for (var i = 0; i < items.length; i++){ 
    Logger.log(items[i].getTitle()); 

// Logs the choices 
    if (items[i].getType() == 'CHECKBOX') { 
    var itemChoices = items[i].asCheckboxItem().getChoices() 
    for (var j = 0; j < itemChoices.length; j++) { 
    var choicesValue = itemChoices[j].getValue(); 
    Logger.log(choicesValue) 
    } 
    } 
}; 

Для getType, вам нужно указать, какой тип выбора формы имеет. В приведенном выше примере кода я использовал asCheckboxItem() для возврата элементов. Вот list of methods, которые вы можете использовать (asCheckboxItem(), asMultipleChoiceItem(), asTextItem() и т. Д.).

Если вы хотите получить содержание формы (вопросы с ответами), вам необходимо использовать FormResponse, чтобы получить ответы на форму в целом.

// Open a form by ID and log the responses to each question. 
var form = FormApp.openById('Form_ID'); 

// Logs the questions with responses 
var formResponses = form.getResponses(); 
for (var i = 0; i < formResponses.length; i++) { 
    var formResponse = formResponses[i]; 
    var itemResponses = formResponse.getItemResponses(); 
    for (var j = 0; j < itemResponses.length; j++) { 
    var itemResponse = itemResponses[j]; 
    Logger.log('Response #%s to the question "%s" was "%s"', 
     (i + 1).toString(), 
     itemResponse.getItem().getTitle(), 
     itemResponse.getResponse()); 
    } 
} 

Вы также можете обратиться с этим SO резьбом:

Надеется, что это помогает!