- Requête HTTP
- Paramètres de chemin d'accès
- Corps de la requête
- Corps de la réponse
- Champs d'application des autorisations
- Status
Exécute une fonction dans un projet Apps Script. Le projet de script doit être déployé pour être utilisé avec l'API Apps Script, et l'application appelante doit partager le même projet Cloud Platform.
Cette méthode nécessite une autorisation avec un jeton OAuth 2.0 qui inclut au moins l'un des champs d'application répertoriés dans la section Autorisation. Les projets de script qui ne nécessitent pas d'autorisation ne peuvent pas être exécutés via cette API. Pour trouver les champs d'application corrects à inclure dans le jeton d'authentification, ouvrez la page Présentation du projet de script, puis faites défiler la page vers le bas jusqu'à "Champs d'application OAuth du projet".
L'erreur 403, PERMISSION_DENIED: The caller does not have permission
indique que le projet Cloud Platform utilisé pour autoriser la requête n'est pas le même que celui utilisé par le script.
Requête HTTP
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
L'URL utilise la syntaxe de transcodage gRPC.
Paramètres de chemin d'accès
Paramètres | |
---|---|
scriptId |
ID du script à exécuter. Recherchez l'ID de script sur la page Paramètres du projet, sous "ID". |
Corps de la requête
Le corps de la requête contient des données présentant la structure suivante :
Représentation JSON |
---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
Champs | |
---|---|
function |
Nom de la fonction à exécuter dans le script donné. Le nom ne contient pas de parenthèses ni de paramètres. Elle peut référencer une fonction d'une bibliothèque incluse telle que |
parameters[] |
Paramètres à transmettre à la fonction en cours d'exécution. Le type d'objet de chaque paramètre doit correspondre au type attendu dans Apps Script. Les paramètres ne peuvent pas être des types d'objets spécifiques à Apps Script ( |
sessionState |
Obsolète. À utiliser uniquement avec les modules complémentaires Android. ID qui représente la session actuelle de l'utilisateur dans l'application Android pour Google Docs ou Sheets, inclus en tant que données supplémentaires dans l'intent qui lance le module complémentaire. Lorsqu'un module complémentaire Android est exécuté avec un état de session, il obtient les droits d'un script lié. Autrement dit, il peut accéder à des informations telles que la position actuelle du curseur de l'utilisateur (dans Docs) ou la cellule sélectionnée (dans Sheets). Pour récupérer l'état, appelez |
devMode |
Si la valeur est |
Corps de la réponse
Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :
Représentation de l'exécution d'une fonction Apps Script démarrée par run
. La réponse n'arrive pas tant que l'exécution de la fonction n'est pas terminée. L'environnement d'exécution maximal est indiqué dans le guide des quotas Apps Script.
Une fois que l'exécution a commencé, elle peut avoir l'un des quatre résultats suivants:
- Si le résultat de la fonction de script aboutit, le champ
response
contient un objetExecutionResponse
avec la valeur renvoyée par la fonction dans le champresult
de l'objet. - Si la fonction de script (ou Apps Script lui-même) génère une exception, le champ
error
contient un objetStatus
. Le champdetails
de l'objetStatus
contient un tableau avec un seul objetExecutionError
qui fournit des informations sur la nature de l'erreur. - Si l'exécution n'est pas encore terminée, le champ
done
estfalse
, et ni les champsresponse
nierror
ne sont présents. - Si l'appel
run
lui-même échoue (par exemple, en raison d'une requête incorrecte ou d'une erreur d'autorisation), la méthode renvoie un code de réponse HTTP de la plage 4XX avec un format de corps de réponse différent. Les bibliothèques clientes convertissent automatiquement une réponse 4XX en classe d'exception.
Représentation JSON |
---|
{ "done": boolean, // Union field |
Champs | |
---|---|
done |
Ce champ indique si l'exécution du script est terminée. Lorsqu'une exécution est terminée, le champ |
Champ d'union result . Résultat de l'opération, qui peut être une erreur (message error ) ou une réponse valide (message response ). Si done == false , ni error , ni response ne sont définis. Si done == true , une seule des options error ou response peut être définie. Certains services peuvent ne pas fournir le résultat. result ne peut être qu'un des éléments suivants : |
|
error |
Si un appel |
response |
Si la fonction de script aboutit, ce champ contient un objet Objet contenant des champs d'un type arbitraire. Un champ supplémentaire |
Champs d'application des autorisations
Nécessite l'un des champs d'application OAuth suivants :
https://apps-apis.google.com/a/feeds
https://apps-apis.google.com/a/feeds/alias/
https://apps-apis.google.com/a/feeds/groups/
https://mail.google.com/
https://sites.google.com/feeds
https://www.google.com/calendar/feeds
https://www.google.com/m8/feeds
https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user
https://www.googleapis.com/auth/documents
https://www.googleapis.com/auth/documents.currentonly
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/dynamiccreatives
https://www.googleapis.com/auth/forms
https://www.googleapis.com/auth/forms.currentonly
https://www.googleapis.com/auth/groups
https://www.googleapis.com/auth/script.cpanel
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/script.send_mail
https://www.googleapis.com/auth/script.storage
https://www.googleapis.com/auth/script.webapp.deploy
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/spreadsheets.currentonly
https://www.googleapis.com/auth/sqlservice
https://www.googleapis.com/auth/userinfo.email
Pour en savoir plus, consultez la Présentation d'OAuth 2.0.
État
Si un appel run
aboutit, mais que la fonction de script (ou Apps Script lui-même) génère une exception, le champ error
du corps de la réponse contient cet objet Status
.
Représentation JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
Champs | |
---|---|
code |
Code d'état. Pour cette API, cette valeur est soit:
|
message |
Message d'erreur destiné au développeur, en anglais. Tout message d'erreur visible par l'utilisateur est localisé et envoyé dans le champ |
details[] |
Tableau contenant un seul objet Objet contenant des champs d'un type arbitraire. Un champ supplémentaire |