Si vous créez l'interface utilisateur d'un script, vous pouvez le publier en tant qu'application Web. Par exemple, il est préférable de présenter un script permettant aux utilisateurs de planifier des rendez-vous avec les membres d'une équipe d'assistance sous la forme d'une application Web afin qu'ils puissent y accéder directement depuis leur navigateur.
Les scripts autonomes et les scripts liés aux applications Google Workspace peuvent être transformés en applications Web, à condition qu'ils répondent aux exigences ci-dessous.
Conditions requises pour les applications Web
Un script peut être publié en tant qu'application Web s'il répond aux exigences suivantes:
- Elle contient une fonction
doGet(e)
oudoPost(e)
. - La fonction renvoie un objet
HtmlOutput
du service HTML ou un objet Service de contenuTextOutput
.
Paramètres de requête
Lorsqu'un utilisateur visite 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 chaîne de requête de l'URL, ou 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 comportant plusieurs valeurs. {"name": "alice", "n": "1"} |
e.parameters |
Un objet semblable à {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Chemin de l'URL après |
e.contextPath |
Non utilisé. Il s'agit toujours d'une chaîne vide. |
e.contentLength |
Longueur du corps de la requête pour les requêtes POST, ou 332 |
e.postData.length |
Même chose que pour 332 |
e.postData.type |
Type MIME du corps de la requête POST. text/csv |
e.postData.contents |
Le texte du corps de la requête 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:
- En haut à droite du projet de script, cliquez sur Déployer > Nouveau déploiement.
- À côté de "Sélectionner le type", cliquez sur Activer les types de déploiement > Application Web.
- Saisissez les informations concernant votre application Web dans les champs situés sous "Configuration du déploiement".
- Cliquez sur Déployer.
Vous pouvez partager l'URL de l'application Web avec les personnes que vous souhaitez utiliser, à condition que vous leur ayez 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:
- En haut à droite du projet de script, cliquez sur Déployer > Tester les déploiements.
- À côté de "Sélectionner le type", cliquez sur Activer les types de déploiement > Application Web.
- Sous l'URL de l'application Web, cliquez sur Copier.
Collez l'URL dans votre navigateur et testez votre application Web.
Cette URL se termine par
/dev
. Seuls les utilisateurs autorisés à modifier le script peuvent y accéder. Cette instance de l'application exécute toujours le dernier code enregistré et n'est destinée qu'à des tests pendant le développement.
Autorisations
Les autorisations pour une application Web diffèrent selon la manière dont vous choisissez d'exécuter l'application:
- Exécuter l'application en tant que moi : dans ce cas, le script s'exécute toujours en tant que propriétaire du script, peu importe 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 à l'aide de l'application Web. Avec cette approche d'autorisation, l'application Web affiche 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 dans la boîte de dialogue Deploy
.
Pour intégrer une application Web dans une page Sites, procédez comme suit:
- Ouvrez la page Google Sites sur laquelle vous souhaitez ajouter l'application Web.
- Sélectionnez Insertion > Intégrer une URL.
- Collez l'URL de l'application Web, puis cliquez sur AJOUTER.
L'application Web apparaît dans un cadre de l'aperçu de la page. Lorsque vous publiez la page, les visiteurs de votre site devront peut-être autoriser l'application Web pour qu'elle 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 qu'elle ait une interface utilisateur 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'interface utilisateur ou la page de l'application, puis transmettre l'état dans l'historique du navigateur lorsque l'utilisateur parcourt votre application. Vous pouvez également écouter les événements d'historique afin que votre application Web affiche la bonne interface utilisateur lorsque l'utilisateur passe d'une page à l'autre à l'aide des boutons du navigateur. En interrogeant les paramètres d'URL au moment du chargement, vous pouvez faire en sorte que votre application crée son UI de manière dynamique 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 liées à l'historique du navigateur:
google.script.history
fournit des méthodes permettant d'autoriser une réponse dynamique aux modifications de l'historique du navigateur. Cela inclut le transfert d'états (objets simples que vous pouvez définir) dans l'historique du navigateur, le remplacement de l'état supérieur de la pile de l'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 d'URL et le fragment d'URL de la page actuelle, s'ils sont présents.
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. L'utilisation de cette fonctionnalité n'est pas non plus recommandée dans les applications Web intégrées à un site Google Sites.