Class FormResponse

FormResponse

Réponse au formulaire dans son ensemble. Un FormResponse peut être utilisé de trois manières différentes: pour accéder aux réponses fournies par la personne interrogée (voir getItemResponses()), pour envoyer par programmation une réponse au formulaire (voir withItemResponse(response) et submit()), et pour générer une URL pour le formulaire qui préremplit les champs à l'aide des réponses fournies. Les FormResponses peuvent être créés ou accessibles à partir d'un Form.

// Open a form by ID and log the responses to each question.
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
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());
  }
}

Méthodes

MéthodeType renvoyéBrève description
getEditResponseUrl()StringGénère une URL qui peut être utilisée pour modifier une réponse déjà envoyée.
getGradableItemResponses()ItemResponse[]Récupère toutes les réponses aux éléments contenues dans une réponse de formulaire, dans le même ordre que celui dans lequel les éléments apparaissent dans le formulaire.
getGradableResponseForItem(item)ItemResponseRécupère la réponse à un élément contenue dans une réponse de formulaire pour un élément donné.
getId()StringRécupère l'ID de la réponse au formulaire.
getItemResponses()ItemResponse[]Récupère toutes les réponses aux éléments contenues dans une réponse de formulaire, dans le même ordre que celui dans lequel les éléments apparaissent dans le formulaire.
getRespondentEmail()StringRécupère l'adresse e-mail de la personne qui a envoyé la réponse, si le paramètre Form.setCollectEmail(collect) est activé.
getResponseForItem(item)ItemResponseRécupère la réponse à un élément contenu dans cette réponse de formulaire pour un élément donné.
getTimestamp()DateRécupère le code temporel correspondant à l'envoi d'une réponse à un formulaire.
submit()FormResponseEnvoie la réponse.
toPrefilledUrl()StringGénère une URL pour le formulaire dans lequel les réponses sont préremplies en fonction des réponses de cette réponse.
withItemGrade(gradedResponse)FormResponseAjoute les notes d'une réponse à un élément donné à une réponse au formulaire.
withItemResponse(response)FormResponseAjoute la réponse à un élément donnée à une réponse de formulaire.

Documentation détaillée

getEditResponseUrl()

Génère une URL qui peut être utilisée pour modifier une réponse déjà envoyée. Si le paramètre Form.setAllowResponseEdits(enabled) est désactivé, le lien mène à une page qui explique que la modification des réponses au formulaire est désactivée. Toute personne qui clique sur le lien peut modifier la réponse. Toutefois, elle a besoin d'un compte ayant accès au formulaire si le paramètre Form.setRequireLogin(requireLogin) est activé. Si le paramètre Form.setCollectEmail(collect) est activé, le formulaire enregistre l'adresse e-mail de l'utilisateur qui a modifié la réponse au lieu de celle du répondant d'origine.

Pour une réponse de formulaire créée par le script, mais pas encore envoyée, cette méthode renvoie null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first form response.
const formResponse = form.getResponses()[0];

// Gets the edit URL for the first form response and logs it to the console.
const editUrl = formResponse.getEditResponseUrl();
console.log(editUrl);

Renvois

String : URL permettant de modifier une réponse envoyée.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableItemResponses()

Récupère toutes les réponses aux éléments contenues dans une réponse de formulaire, dans le même ordre que celui dans lequel les éléments apparaissent dans le formulaire. Cette méthode fonctionne de la même manière que getItemResponses(), mais pour permettre de noter une réponse manquante, elle renvoie toujours un ItemResponse si le Item correspondant peut être noté (c'est-à-dire qu'il possède un barème de notation), même s'il n'y a pas de réponse réelle. Toutefois, si l'élément Item ne peut pas être gradué, cette méthode exclut cet élément du tableau renvoyé.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Gets the item responses contained in each form response.
for (const formResponse of formResponses){
  const gradableItemsResponses = formResponse.getGradableItemResponses();

  // Logs the title and score for each item response to the console.
  for (const gradableItemsResponse of gradableItemsResponses) {
    console.log(`${gradableItemsResponse.getItem().getTitle()}
       score ${gradableItemsResponse.getScore()}`);
  }
}

Renvois

ItemResponse[] : tableau de réponses à chaque question du formulaire pour laquelle la personne interrogée peut recevoir un score.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableResponseForItem(item)

Récupère la réponse à un élément contenue dans une réponse de formulaire pour un élément donné. Cette méthode fonctionne de la même manière que getResponseForItem(item), mais pour permettre de noter une réponse manquante, elle renvoie toujours un ItemResponse si le Item correspondant peut être noté (c'est-à-dire qu'il possède une valeur en points), même s'il n'y a pas de réponse réelle. Toutefois, si l'élément Item ne peut pas être évalué, cette méthode renvoie null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Gets the item responses contained in a form response.
for (const formResponse of formResponses) {
  const formItemResponses = formResponse.getGradableItemResponses();

  // Logs the title and score for responses to the first item of the form.
  const itemResponse = formResponse.getGradableResponseForItem(formItemResponses[0].getItem());
  console.log(`${itemResponse.getItem().getTitle()} score ${itemResponse.getScore()}`);
}

Paramètres

NomTypeDescription
itemItem

Renvois

ItemResponse : réponse pour un élément donné, ou null si aucun élément n'existe et que l'élément n'est pas noté.


getId()

Récupère l'ID de la réponse au formulaire. Cette méthode renvoie null si la réponse au formulaire n'a pas été envoyée.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the form responses and logs the ID for each form response to the console.
for (const formResponse of formResponses) {
  console.log(`Response ID: ${formResponse.getId()}`);
}

Renvois

String : ID de la réponse au formulaire, ou null si la réponse n'a pas été envoyée.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItemResponses()

Récupère toutes les réponses aux éléments contenues dans une réponse de formulaire, dans le même ordre que celui dans lequel les éléments apparaissent dans le formulaire. Si la réponse du formulaire ne contient pas de réponse pour un TextItem, un DateItem, un TimeItem ou un ParagraphTextItem donné, le ItemResponse renvoyé pour cet élément aura une chaîne vide en tant que réponse. Si la réponse au formulaire omet une réponse pour tout autre type d'élément, cette méthode exclut cet élément du tableau renvoyé.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the responses to the form.
const formResponses = form.getResponses();

// Iterates over the responses.
for (const formResponse of formResponses) {

  // Gets the item responses from each form response.
  const itemResponses = formResponse.getItemResponses();

  // Iterates over the item responses.
  for (const itemResponse of itemResponses) {

    // Logs the items' questions and responses to the console.
    console.log(`Response to the question '${itemResponse.getItem().getTitle()}' was
      '${itemResponse.getResponse()}'`);
  }
}

Renvois

ItemResponse[] : tableau des réponses à chaque question du formulaire pour laquelle la personne interrogée a fourni une réponse.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getRespondentEmail()

Récupère l'adresse e-mail de la personne qui a envoyé la réponse, si le paramètre Form.setCollectEmail(collect) est activé.

Pour une réponse de formulaire créée par le script, mais pas encore envoyée, cette méthode renvoie null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs each respondent's email to the console.
// To collect respondent emails, ensure that Form.setCollectEmail(collect) is set to true.
for (const formResponse of formResponses) {
  console.log(`Respondent Email: ${formResponse.getRespondentEmail()}`);
}

Renvois

String : adresse e-mail de la personne qui a envoyé cette réponse, si disponible, ou null si le script a créé cette réponse, mais ne l'a pas encore envoyée.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getResponseForItem(item)

Récupère la réponse à un élément contenu dans cette réponse de formulaire pour un élément donné.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first item on the form.
const item = form.getItems()[0];

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs each response to the first item to the console.
for (const formResponse of formResponses) {
  const itemResponse = formResponse.getResponseForItem(item);
  console.log(itemResponse.getResponse());
}

Paramètres

NomTypeDescription
itemItem

Renvois

ItemResponse : réponse pour un élément donné, ou null si aucun élément n'existe.


getTimestamp()

Récupère le code temporel correspondant à l'envoi d'une réponse à un formulaire.

Pour une réponse de formulaire créée par le script, mais pas encore envoyée, cette méthode renvoie null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs the timestamp of each response to the console.
for (const formResponse of formResponses) {
  console.log(`Timestamp: ${formResponse.getTimestamp()}`);
}

Renvois

Date : code temporel auquel cette réponse a été envoyée, ou null si le script a créé cette réponse, mais ne l'a pas encore envoyée.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

submit()

Envoie la réponse. Génère une exception de script si la réponse a déjà été envoyée.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Creates an empty response for the form.
const formResponse = form.createResponse();

// Submits an empty response.
formResponse.submit();

Renvois

FormResponse : réponse nouvellement créée enregistrée dans le magasin de réponses du formulaire.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

toPrefilledUrl()

Génère une URL pour le formulaire dans lequel les réponses sont préremplies en fonction des réponses de cette réponse.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first form response.
const formResponse = form.getResponses()[0];

// Generates and logs the URL of a pre-filled form response based on the answers
// of the first form response.
const prefilledUrl = formResponse.toPrefilledUrl();
console.log(prefilledUrl);

Renvois

String : URL d'un formulaire avec des réponses préremplies.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemGrade(gradedResponse)

Ajoute les notes d'une réponse à un élément donné à une réponse au formulaire. Cette méthode ne s'applique qu'aux réponses déjà envoyées et n'affecte les notes stockées qu'une fois qu'elles ont été envoyées. Cette méthode ne met également à jour que les notes de la réponse à l'élément. Elle n'affecte pas la réponse réelle (puisque la réponse a déjà été envoyée). Si cette méthode est appelée plusieurs fois pour le même élément, seule la dernière note est conservée. Si la réponse ItemResponse ne contient aucune note, cette méthode supprime les notes de l'élément.

// Programmatically award partial credit for a given response
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var formResponses = form.getResponses();
var formItems = form.getItems();
for (var i = 0; i < formResponses.length; i++) {
  var formResponse = formResponses[i];
  for (var j = 0; j < formItems.length; j++) {
    var item = formItems[j];
    var points = item.asMultipleChoiceItem().getPoints();
    var itemResponse = formResponse.getGradableResponseForItem(item);
    Logger.log('Award half credit for answers containing the word "Kennedy"');
    var answer = itemResponse.getResponse();
    if (answer != null && answer.includes('Kennedy')) {
      itemResponse.setScore(points / 2);
      formResponse.withItemGrade(itemResponse);
    }
  }
}
form.submitGrades(formResponses);

Paramètres

NomTypeDescription
gradedResponseItemResponse

Renvois

FormResponse : cette FormResponse, pour le chaînage

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemResponse(response)

Ajoute la réponse à un élément donnée à une réponse de formulaire. Cette méthode ne s'applique qu'aux réponses de formulaire créées par le script, mais pas encore envoyées. Elle ne peut pas affecter les réponses stockées. Si cette méthode est appelée plusieurs fois pour le même élément, seule la réponse du dernier élément est conservée.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Creates a response for the form.
const formResponse = form.createResponse();

// Appends a checkbox item to the form.
const item = form.addCheckboxItem();

// Sets the title of the item to 'Which items are ice cream flavors?'
item.setTitle('Which items are ice cream flavors?');

// Sets choices for the item.
item.setChoices([
item.createChoice('Vanilla'),
item.createChoice('Strawberry'),
item.createChoice('Brick')
]);

// Creates a response for the item.
const response = item.createResponse(['Vanilla', 'Strawberry']);

// Adds the item response to the form response.
formResponse.withItemResponse(response);

// Submits the form response.
formResponse.submit();

Paramètres

NomTypeDescription
responseItemResponse

Renvois

FormResponse : FormResponse, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms