Réponse au formulaire dans son ensemble. Un FormResponse
peut être utilisé de trois manières différentes: pour accéder aux réponses soumises par une personne interrogée (voir getItemResponses()
), pour envoyer une réponse au formulaire par programmation (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. Vous pouvez créer des FormResponse
ou y accéder à 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éthode | Type renvoyé | Brève description |
---|---|---|
getEditResponseUrl() | String | Génère une URL permettant de modifier une réponse déjà envoyée. |
getGradableItemResponses() | ItemResponse[] | Récupère toutes les réponses d'élément contenues dans une réponse de formulaire, dans le même ordre que les éléments du formulaire. |
getGradableResponseForItem(item) | ItemResponse | Récupère la réponse de l'élément contenue dans une réponse au formulaire pour un élément donné. |
getId() | String | Récupère l'ID de la réponse du formulaire. |
getItemResponses() | ItemResponse[] | Récupère toutes les réponses d'élément contenues dans une réponse de formulaire, dans le même ordre que les éléments du formulaire. |
getRespondentEmail() | String | Récupère l'adresse e-mail de la personne qui a envoyé une réponse, si le paramètre Form.setCollectEmail(collect) est activé. |
getResponseForItem(item) | ItemResponse | Récupère la réponse de l'élément contenue dans ce formulaire pour un élément donné. |
getTimestamp() | Date | Récupère l'horodatage d'une envoi d'une réponse au formulaire. |
submit() | FormResponse | Envoie la réponse. |
toPrefilledUrl() | String | Génère une URL pour le formulaire dans lequel les réponses sont préremplies en fonction des réponses de ce formulaire. |
withItemGrade(gradedResponse) | FormResponse | Ajoute les notes de la réponse d'élément donnée à une réponse au formulaire. |
withItemResponse(response) | FormResponse | Ajoute la réponse de l'élément donné à une réponse du formulaire. |
Documentation détaillée
getEditResponseUrl()
Génère une URL permettant de modifier une réponse déjà envoyée. Si le paramètre Form.setAllowResponseEdits(enabled)
est désactivé, le lien mène à une page expliquant que la modification des réponses aux questions du formulaire est désactivée. Toute personne qui consulte le lien peut modifier la réponse, mais elle a besoin d'un compte avec un 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 l'adresse e-mail de la personne interrogée.
Pour une réponse à un 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);
Aller-retour
String
: URL pour modifier une réponse envoyée.
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec 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 d'élément contenues dans une réponse de formulaire, dans le même ordre que les éléments du 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 une ItemResponse
si le Item
correspondant peut être noté (avec un barème de notation), même en l'absence de réponse réelle. Toutefois, si l'élément Item
ne peut pas être évalué, cette méthode exclut cet élément de son 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()}`); } }
Aller-retour
ItemResponse[]
: tableau des réponses à chaque élément de la question dans lequel le participant peut recevoir un score.
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec 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 de l'élément contenue dans une réponse au 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é (avec un barème de notation), même en l'absence de réponse réelle. Toutefois, si la Item
ne peut pas être convertie, 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
Nom | Type | Description |
---|---|---|
item | Item |
Aller-retour
ItemResponse
: réponse d'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 du 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()}`); }
Aller-retour
String
: ID de la réponse au formulaire, ou null
si la réponse au formulaire n'a pas été envoyée.
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec 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 d'élément contenues dans une réponse de formulaire, dans le même ordre que les éléments du formulaire. Si la réponse du formulaire ne contient pas de réponse pour les éléments TextItem
, DateItem
, TimeItem
ou ParagraphTextItem
, le ItemResponse
aura une chaîne vide en tant que réponse. Si la réponse du formulaire omet une réponse pour un autre type d'élément, cette méthode exclut cet élément de son 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()}'`); } }
Aller-retour
ItemResponse[]
: tableau des réponses à chaque élément de la question dans lequel le participant a fourni une réponse.
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec 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é une réponse, si le paramètre Form.setCollectEmail(collect)
est activé.
Pour une réponse à un 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()}`); }
Aller-retour
String
: adresse e-mail de la personne qui a envoyé cette réponse, ou disponible (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 avec 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 de l'élément contenue dans ce 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
Nom | Type | Description |
---|---|---|
item | Item |
Aller-retour
ItemResponse
: réponse d'un élément donné, ou null
si aucun élément n'existe.
getTimestamp()
Récupère l'horodatage d'une envoi d'une réponse au formulaire.
Pour une réponse à un 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()}`); }
Aller-retour
Date
: horodatage de cette réponse 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 avec 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();
Aller-retour
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 avec 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 ce formulaire.
// 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);
Aller-retour
String
: URL d'un formulaire avec des réponses préremplies.
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec 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 de la réponse d'élément donnée à une réponse au formulaire. Cette méthode ne s'applique qu'aux réponses de formulaire déjà envoyées, et n'affecte les notes stockées qu'une fois envoyées. Cette méthode ne met également à jour que les notes de la réponse à l'élément. Elle n'a pas d'incidence sur la réponse réelle, car elle 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 ItemItem 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
Nom | Type | Description |
---|---|---|
gradedResponse | ItemResponse |
Aller-retour
FormResponse
: ce FormResponse
s'enchaîne
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec 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 de l'élément donné à une réponse du formulaire. Cette méthode s'applique uniquement 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 dernière réponse de l'é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
Nom | Type | Description |
---|---|---|
response | ItemResponse |
Aller-retour
FormResponse
: cet élément FormResponse
, pour le chaînage.
Autorisation
Les scripts qui utilisent cette méthode nécessitent une autorisation avec un ou plusieurs des champs d'application suivants:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms