Une bibliothèque est un projet de script dont les fonctions peuvent être réutilisées dans d'autres scripts.
Accéder à une bibliothèque
Pour inclure une bibliothèque dans votre projet, vous devez au moins y avoir accès au niveau de la vue. Si vous n'êtes pas l'auteur de la bibliothèque que vous souhaitez inclure, contactez l'auteur et demandez-lui l'accès.
Vous avez besoin de l'ID de script de la bibliothèque que vous souhaitez inclure. Lorsque vous avez accès à la bibliothèque, vous pouvez trouver l'ID de script sur la page Paramètres du projet
.Ajouter une bibliothèque à votre projet de script
- À gauche de l'éditeur Apps Script, à côté de "Bibliothèques", cliquez sur Ajouter une bibliothèque .
- Dans le champ "ID du script", collez l'ID du script de la bibliothèque.
- Cliquez sur Rechercher.
- Cliquez sur le menu déroulant Version et sélectionnez la version de la bibliothèque à utiliser.
- Vérifiez si le nom d'identifiant par défaut est celui que vous souhaitez utiliser avec cette bibliothèque. Il s'agit du nom que votre script utilise pour faire référence à la bibliothèque. Par exemple, si vous le définissez sur
Test
, vous pouvez appeler une méthode de cette bibliothèque comme suit :Test.libraryMethod()
. - Cliquez sur Ajouter.
Utiliser une bibliothèque
Utilisez votre bibliothèque incluse comme vous le feriez avec un service par défaut. Par exemple, si Test
est l'identifiant de votre bibliothèque, saisissez Test
immédiatement suivi d'un point pour afficher la liste des méthodes de la bibliothèque.
Pour ouvrir la documentation de référence d'une bibliothèque incluse, procédez comme suit :
À gauche de l'éditeur de script, à côté du nom de la bibliothèque, cliquez sur Plus
> Ouvrir dans un nouvel onglet.Supprimer une bibliothèque
À gauche de l'éditeur de script, à côté du nom de la bibliothèque, cliquez sur Plus
> Supprimer > Supprimer la bibliothèque.Mettre à jour une bibliothèque
Vous pouvez modifier la version de la bibliothèque ou mettre à jour son identifiant.
- À gauche de l'éditeur, sous "Bibliothèques", cliquez sur le nom de la bibliothèque.
- Apportez les modifications nécessaires, puis cliquez sur Enregistrer.
Créer et partager une bibliothèque
Pour utiliser et partager votre projet de script en tant que bibliothèque, suivez les étapes ci-dessous.
- Créez un déploiement versionné de votre script.
- Partagez au moins l'accès en lecture seule avec tous les utilisateurs potentiels de la bibliothèque.
- Communiquez-leur l'ID du script, que vous trouverez sur la page Paramètres du projet .
Bonnes pratiques
Voici quelques consignes à suivre lors de la rédaction d'une bibliothèque :
- Choisissez un nom explicite pour votre projet, car il sera utilisé comme identifiant par défaut lorsque votre bibliothèque sera incluse par d'autres.
- Si vous souhaitez qu'une ou plusieurs méthodes de votre script ne soient pas visibles (ni utilisables) par les utilisateurs de votre bibliothèque, vous pouvez terminer le nom de la méthode par un trait de soulignement. Par exemple,
myPrivateMethod_()
. - Seules les propriétés globales énumérables sont visibles par les utilisateurs de la bibliothèque. Cela inclut les déclarations de fonctions, les variables créées en dehors d'une fonction avec
var
et les propriétés définies explicitement sur l'objet global. Par exemple,Object.defineProperty()
avecenumerable
défini surfalse
crée un symbole que vous pouvez utiliser dans votre bibliothèque, mais qui n'est pas accessible à vos utilisateurs. Si vous souhaitez que les utilisateurs de votre bibliothèque puissent utiliser la saisie semi-automatique de l'éditeur de script et la documentation générée automatiquement, vous devez disposer d'une documentation de style JSDoc pour toutes vos fonctions. Exemple :
/** * Raises a number to the given power, and returns the result. * * @param {number} base the number we're raising to a power * @param {number} exp the exponent we're raising the base to * @return {number} the result of the exponential calculation */ function power(base, exp) { ... }
Définition du champ d'application des ressources
Lorsque vous travaillez avec des bibliothèques, il existe deux types de ressources : partagées et non partagées. Une ressource partagée signifie que la bibliothèque et le script d'inclusion ont un accès intégré à la même instance de la ressource. Le diagramme suivant illustre une ressource partagée à l'aide de l'exemple des propriétés utilisateur :
Une ressource non partagée signifie que la bibliothèque et le script d'inclusion ont un accès intégré uniquement à leur instance de la ressource. Toutefois, une bibliothèque peut fournir un accès à ses ressources non partagées en disposant de fonctions explicites qui fonctionnent sur celles-ci. Voici un exemple de fonction que vous incluez dans votre bibliothèque pour exposer ses propriétés de script :
function getLibraryProperty(key) {
const scriptProperties = PropertiesService.getScriptProperties();
return scriptProperties.getProperty(key);
}
Le schéma suivant illustre une ressource non partagée à l'aide de l'exemple des propriétés de script :
Le tableau suivant liste les ressources partagées et non partagées pour votre référence :
Ressource | Partagé* | Non partagé** | Remarques |
---|---|---|---|
Verrouiller | La même instance est visible par tous, y compris les scripts, lorsqu'elle est créée dans la bibliothèque. | ||
Propriétés du script | La même instance est visible par tous, y compris les scripts, lorsqu'elle est créée dans la bibliothèque. | ||
Cache | La même instance est visible par tous, y compris les scripts, lorsqu'elle est créée dans la bibliothèque. | ||
Déclencheurs | Les déclencheurs simples créés dans la bibliothèque ne sont pas déclenchés par le script d'inclusion. | ||
ScriptApp | |||
UiApp |
|
||
Propriétés utilisateur | |||
Journal et script d'exécution | |||
Sites, Sheets et autres conteneurs | Un appel à getActive() renvoie le conteneur de l'élément, y compris le script. |
||
MailApp et GmailApp | |||
* Cela signifie que la bibliothèque ne possède pas sa propre instance de la fonctionnalité/ressource et qu'elle utilise plutôt celle créée par le script qui l'a appelée.
** Cela signifie que la bibliothèque possède sa propre instance de la ressource/fonctionnalité, et que tous les scripts qui utilisent la bibliothèque partagent et ont accès à cette même instance. |
Tester une bibliothèque
Pour tester votre bibliothèque, utilisez le déploiement principal. Toute personne ayant accès au script en tant qu'éditeur peut utiliser le déploiement de tête.
Déboguer une bibliothèque
Lorsque vous utilisez le débogueur dans un projet qui inclut une bibliothèque, vous pouvez accéder à une fonction de la bibliothèque incluse. Le code s'affiche dans le débogueur en mode lecture seule et dans la bonne version.