Connaître l'id d'un champ GoogleForm afin de le pré-remplir.

Avatar de l’utilisateur
Chritophe

Membre tout neuf
Messages : 2
Inscription : 06 août 2023 09:53
A remercié : 1 fois

Connaître l'id d'un champ GoogleForm afin de le pré-remplir.

Message par Chritophe »

Bonjour à tous.

C'est mon premier message, et je suis bien content de trouver un tel forum francophone.

Le script de se trouvant dans mon Google sheet construit une URL sur base de celle d'un formulaire et d'une clé unique.

  var key = Utilities.getUuid();

Cela donne quelque chose qui ressemble à ceci :

var url = 'https://docs.google.com/forms/d/e/IdFor ... 375139745=' + encodeURIComponent(key);

Lorsque mon client clique sur le lien, cela ouvre son formulaire et devrait remplir le champ 1375139745 avec la clé.

Mais cela ne fonctionne pas.

Comme je n'ai pas trouvé facilement l'identifiant du champ "clé", j'ai utilisé ce script :

function getFormFieldIds() {
  var form = FormApp.openById('IdFormulaireAdmin');
  var items = form.getItems();
  for (var i in items) {
    Logger.log('Title: ' + items.getTitle() + ', ID: ' + items.getId());
  }
}

Vous remarquerez au passage que je distingue d'une part l'identifiant du formulaire que j'ai en tant qu'administrateur (c'est-à-dire qu'éditeur), et d'autre part l'identifiant du formulaire de mon client.

Lorsque j'exécute mon script, j'obtiens ceci :

10:05:56    Infos    Title: Clé du client, ID: 1375139745
10:05:56    Infos    Title: , ID: 761264255
10:05:56    Infos    Title: Civilité, ID: 2004664087
10:05:56    Infos    Title: Prénom, ID: 1178533075
10:05:56    Infos    Title: Nom, ID: 374041494
etc.

Dans le formulaire client, le champ de la clé n'est pas obligatoire, c'est un texte du type « réponse courte ». J'ai donc mis toutes les chances de mon côté pour que le contenu puisse être inséré.

J'ai tout essayé, y compris en navigation privée, et en inscrivant directement l'URL dans le navigateur.


 
Avatar de l’utilisateur
NC_Quentin

Coach Numericoach
Invétéré
Messages : 32
Inscription : 10 oct. 2022 09:06
A remercié : 1 fois
Remercié : 11 fois

Re: Connaître l'id d'un champ GoogleForm afin de le pré-remplir.

Message par NC_Quentin »

Bonjour !

Je ne sais pas exactement ce qui coince de votre côté, mais je vous propose ce code que j’ai testé sur un de mes formulaires et marche très bien :

Code : Tout sélectionner

function getPrefilledURL() {
  // On récupère le formulaire
  const form = FormApp.openById(formID)

  // On récupère la question (item) qui nous intéresse, ici c’est la première.
  const idItem = form.getItems()[0].asTextItem();

  // On génère la clé ID aléatoire à pré-remplir
  const key = Utilities.getUuid();

  // On crée la réponse à la question
  const idItemResponse = idItem.createResponse(key);

  // On crée une "réponse" au formulaire qui va nous donner l’adresse pré-remplie
  const prefilledURL = form.createResponse()
                      .withItemResponse(idItemResponse)
                      .toPrefilledUrl();

  // On affiche dans la console pour vérification (identique à Logger.log() )
  console.log(prefilledURL);

  // On renvoie l’URL pour l’utiliser ailleurs dans le code
  return prefilledURL;
}
À noter que cette version présuppose que vous connaissez l’emplacement exacte de la question dans la liste des questions (ici, l’ID à remplir est la première, c’est donc à l’index 0), mais une version plus complexe de ce code récupérant la question en se basant sur son intitulé est aussi tout à fait possible. De la même manière, vous pouvez simplement ajouter un autre .withItemResponse(newItemResponse) si vous avez besoin de remplir plus de champs !

Je vous laisse tester, dites-moi si ça fonctionne ! 

 
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous