Applications Web

Si vous créez une interface utilisateur pour un script, vous pouvez le publier en tant qu'application Web. Par exemple, un script permettant aux utilisateurs de prendre rendez-vous avec des membres d'une équipe d'assistance est préférable de le présenter en tant qu'application Web afin que les utilisateurs puissent y accéder directement depuis leurs navigateurs.

Les scripts autonomes et les scripts liés à des applications peuvent être transformés en applications Web, à condition qu'ils répondent aux exigences ci-dessous.

Exigences concernant les applications Web

Un script peut être publié en tant qu'application Web s'il répond aux conditions suivantes:

Paramètres de requête

Lorsqu'un utilisateur accède à une application ou qu'un programme envoie à l'application une requête HTTP GET, Apps Script exécute la fonction doGet(e). Lorsqu'un programme envoie à l'application une requête HTTP POST, Apps Script exécute doPost(e) à la place. Dans les deux cas, l'argument e représente un paramètre d'événement pouvant contenir des informations sur tous les paramètres de requête. La structure de l'objet événement est présentée dans le tableau ci-dessous:

Champs
e.queryString

Valeur de la partie de la chaîne de requête de l'URL, ou null si aucune chaîne de requête n'est spécifiée

name=alice&n=1&n=2
e.parameter

Objet de paires clé/valeur correspondant aux paramètres de la requête. Seule la première valeur est renvoyée pour les paramètres à valeurs multiples.

{"name": "alice", "n": "1"}
e.parameters

Objet semblable à e.parameter, mais avec un tableau de valeurs pour chaque clé

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

Chemin d'URL après /exec ou /dev. Par exemple, si le chemin d'accès de l'URL se termine par /exec/hello, les informations sur le chemin d'accès sont hello.

e.contextPath Non utilisé, toujours la chaîne vide.
e.contentLength

Longueur du corps de la requête pour les requêtes POST ou -1 pour les requêtes GET

332
e.postData.length

Même chose que pour e.contentLength

332
e.postData.type

Type MIME du corps POST

text/csv
e.postData.contents

Texte du contenu du corps POST

Alice,21
e.postData.name

Toujours la valeur "postData"

postData

Par exemple, vous pouvez transmettre des paramètres tels que username et age à une URL, comme indiqué ci-dessous:

https://script.google.com/.../exec?username=jsmith&age=21

Vous pouvez ensuite afficher les paramètres comme suit:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

Dans l'exemple ci-dessus, doGet(e) renvoie le résultat suivant:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

Déployer un script en tant qu'application Web

Pour déployer un script en tant qu'application Web, procédez comme suit:

  1. En haut à droite du projet de script, cliquez sur Déployer > Nouveau déploiement.
  2. À côté de "Sélectionner le type", cliquez sur "Activer les types de déploiement"  > Application Web.
  3. Saisissez les informations sur votre application Web dans les champs sous "Configuration de déploiement".
  4. Cliquez sur Déployer.

Vous pouvez partager l'URL de l'application Web avec les personnes auxquelles vous souhaitez permettre d'utiliser votre application, à condition de leur avoir accordé l'accès.

Tester le déploiement d'une application Web

Pour tester votre script en tant qu'application Web, procédez comme suit:

  1. En haut à droite du projet de script, cliquez sur Déployer > Tester les déploiements.
  2. À côté de "Sélectionner le type", cliquez sur "Activer les types de déploiement"  > "Application Web".
  3. Sous l'URL de l'application Web, cliquez sur Copier.
  4. Collez l'URL dans votre navigateur et testez votre application Web.

    Cette URL se termine par /dev et ne peut être consultée que par les utilisateurs disposant d'un accès en écriture au script. Cette instance de l'application exécute toujours le code le plus récemment enregistré et n'est destinée qu'aux tests pendant le développement.

Autorisations

Les autorisations d'une application Web varient selon la manière dont vous choisissez de l'exécuter:

  • Exécuter l'application en tant que moi-même : dans ce cas, le script s'exécute toujours en tant que vous, le propriétaire du script, quel que soit l'utilisateur qui accède à l'application Web.
  • Exécuter l'application en tant qu'utilisateur accédant à l'application Web : dans ce cas, le script s'exécute sous l'identité de l'utilisateur actif qui utilise l'application Web. Cette approche d'autorisation permet à l'application Web d'afficher l'adresse e-mail du propriétaire du script lorsque l'utilisateur autorise l'accès.

Intégrer votre application Web dans Google Sites

Pour intégrer une application Web dans Google Sites, vous devez d'abord la déployer. Vous avez également besoin de l'URL déployée de la boîte de dialogue Deploy.

Pour intégrer une application Web à une page Sites, procédez comme suit:

  1. Ouvrez la page "Sites" sur laquelle vous souhaitez ajouter l'application Web.
  2. Sélectionnez Insérer > URL d'intégration.
  3. Collez l'URL de l'application Web, puis cliquez sur AJOUTER.

L'application Web s'affiche dans un cadre dans l'aperçu de la page. Lorsque vous publiez la page, les visiteurs de votre site peuvent avoir besoin d'autoriser l'application Web avant qu'elle ne s'exécute normalement. Les applications Web non autorisées présentent des invites d'autorisation à l'utilisateur.

Applications Web et historique du navigateur

Il peut être souhaitable qu'une application Web Apps Script simule une application multipage ou une application avec une UI dynamique contrôlée via des paramètres d'URL. Pour ce faire, vous pouvez définir un objet d'état pour représenter l'UI ou la page de l'application, et transmettre l'état dans l'historique du navigateur lorsque l'utilisateur navigue dans votre application. Vous pouvez également écouter les événements d'historique afin que votre application Web affiche l'UI appropriée lorsque l'utilisateur navigue de gauche à droite avec les boutons du navigateur. En interrogeant les paramètres d'URL au moment du chargement, vous pouvez demander à votre application de créer dynamiquement son UI en fonction de ces paramètres, ce qui permet à l'utilisateur de démarrer l'application dans un état particulier.

Apps Script fournit deux API JavaScript côté client asynchrones pour vous aider à créer des applications Web associées à l'historique du navigateur:

  • google.script.history fournit des méthodes permettant de répondre de manière dynamique aux modifications de l'historique du navigateur. Cela inclut: l'envoi d'états (des objets simples que vous pouvez définir) dans l'historique du navigateur, le remplacement de l'état supérieur dans la pile d'historique et la définition d'une fonction de rappel d'écouteur pour répondre aux modifications de l'historique.

  • google.script.url permet de récupérer les paramètres et le fragment d'URL de la page actuelle, le cas échéant.

Ces API d'historique ne sont disponibles que pour les applications Web. Ils ne sont pas compatibles avec les barres latérales, les boîtes de dialogue ni les modules complémentaires. Cette fonctionnalité n'est pas non plus recommandée pour les applications Web intégrées à Google Sites.