Accede y manipula la publicación de secuencias de comandos y los activadores. Esta clase permite a los usuarios crear activadores de secuencias de comandos y controlar su publicación como un servicio.
Propiedades
Propiedad | Tipo | Descripción |
---|---|---|
AuthMode | AuthMode | Una enumeración que identifica las categorías de servicios autorizados que Apps Script puede ejecutar a través de una función activada. |
AuthorizationStatus | AuthorizationStatus | Una enumeración que denota el estado de autorización de una secuencia de comandos. |
EventType | EventType | Una enumeración que denota el tipo de evento activado. |
InstallationSource | InstallationSource | Una enumeración que indica cómo se instaló la secuencia de comandos para el usuario como un complemento. |
TriggerSource | TriggerSource | Una enumeración que indica el origen del evento que activa el activador. |
WeekDay | Weekday | Una enumeración que representa los días de la semana. |
Métodos
Método | Tipo de datos que se muestra | Descripción breve |
---|---|---|
deleteTrigger(trigger) | void | Quita el activador determinado para que ya no se ejecute. |
getAuthorizationInfo(authMode) | AuthorizationInfo | Obtiene un objeto que se usa a fin de determinar si el usuario debe autorizar esta secuencia de comandos para usar uno o más servicios y proporcionar la URL para un diálogo de autorización. |
getIdentityToken() | String | Obtiene un token de identidad de OpenID Connect para el usuario efectivo, si se otorgó el alcance openid . |
getInstallationSource() | InstallationSource | Muestra un valor de enumeración que indica cómo se instaló la secuencia de comandos como un complemento para el usuario actual (por ejemplo, si el usuario la instaló personalmente a través de Chrome Web Store o si un administrador de dominio la instaló para todos los usuarios). |
getOAuthToken() | String | Obtiene el token de acceso de OAuth 2.0 para el usuario efectivo. |
getProjectTriggers() | Trigger[] | Obtiene todos los activadores instalables asociados con el proyecto actual y el usuario actual. |
getScriptId() | String | Obtiene el ID único del proyecto de secuencia de comandos. |
getService() | Service | Obtiene un objeto que se usa para controlar la publicación de la secuencia de comandos como una aplicación web. |
getUserTriggers(document) | Trigger[] | Obtiene todos los activadores instalables que son propiedad de este usuario en el documento determinado, solo para esta secuencia de comandos o complemento. |
getUserTriggers(form) | Trigger[] | Obtiene todos los activadores instalables que pertenecen a este usuario en el formulario dado, solo para esta secuencia de comandos o complemento. |
getUserTriggers(spreadsheet) | Trigger[] | Obtiene todos los activadores instalables que pertenecen a este usuario en la hoja de cálculo determinada, solo para esta secuencia de comandos o complemento. |
invalidateAuth() | void | Invalida la autorización que tiene el usuario vigente para ejecutar la secuencia de comandos actual. |
newStateToken() | StateTokenBuilder | Crea un compilador para un token de estado que se puede usar en una API de devolución de llamada (como un flujo de OAuth). |
newTrigger(functionName) | TriggerBuilder | Comienza el proceso de creación de un activador instalable que, cuando se activa, llama a una función determinada. |
Documentación detallada
deleteTrigger(trigger)
Quita el activador determinado para que ya no se ejecute.
// Deletes all triggers in the current project. var triggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
trigger | Trigger | El activador que se borrará. |
Autorización
Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:
-
https://www.googleapis.com/auth/script.scriptapp
getAuthorizationInfo(authMode)
Obtiene un objeto que se usa a fin de determinar si el usuario debe autorizar esta secuencia de comandos para usar uno o más servicios y proporcionar la URL para un diálogo de autorización. Si la secuencia de comandos se publica como un complemento que usa activadores instalables, esta información se puede usar para controlar el acceso a las secciones del código para las que el usuario no tiene la autorización necesaria. Como alternativa, el complemento puede pedirle al usuario que abra la URL del diálogo de autorización para resolver el problema.
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
authMode | AuthMode | el modo de autorización para el cual se solicita información de autorización; en casi todos los casos, el valor de authMode debe ser ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) , ya que ningún otro modo de autorización requiere que los usuarios otorguen autorización |
Volver
AuthorizationInfo
: un objeto que puede proporcionar información sobre el estado de autorización del usuario
getIdentityToken()
Obtiene un token de identidad de OpenID Connect para el usuario efectivo, si se otorgó el alcance openid
. Este alcance no se incluye de forma predeterminada, y debes agregarlo como un alcance explícito en el archivo de manifiesto para solicitarlo. Incluye los alcances https://www.googleapis.com/auth/userinfo.email
o https://www.googleapis.com/auth/userinfo.profile
para mostrar información adicional del usuario en el token.
El token de ID que se muestra es un token web JSON (JWT) codificado y debe decodificarse para extraer información de él. En los siguientes ejemplos, se muestra cómo decodificar el token y extraer el ID de perfil de Google efectivo del usuario.
var idToken = ScriptApp.getIdentityToken(); var body = idToken.split('.')[1]; var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString(); var payload = JSON.parse(decoded); var profileId = payload.sub; Logger.log('Profile ID: ' + profileId);Consulta la documentación de OpenID Connect para ver la lista completa de campos (reclamos) que se muestran.
Volver
String
: El token de identidad, si está disponible; de lo contrario, null
.
getInstallationSource()
Muestra un valor de enumeración que indica cómo se instaló la secuencia de comandos como un complemento para el usuario actual (por ejemplo, si el usuario la instaló personalmente a través de Chrome Web Store o si un administrador de dominio la instaló para todos los usuarios).
Volver
InstallationSource
: Es la fuente de instalación.
getOAuthToken()
Obtiene el token de acceso de OAuth 2.0 para el usuario efectivo. Si los alcances de OAuth de la secuencia de comandos son suficientes para autorizar a otra API de Google que normalmente requiere su propio flujo de OAuth (como el Selector de Google), las secuencias de comandos pueden omitir el segundo mensaje de autorización si pasan este token. El token vence después de un tiempo (pocos minutos como mínimo); las secuencias de comandos deben manejar las fallas de autorización y llamar a este método para obtener un token nuevo cuando sea necesario.
El token que muestra este método solo incluye los alcances que la secuencia de comandos necesita actualmente. Los alcances que se autorizaron con anterioridad, pero que la secuencia de comandos ya no usa, no se incluyen en el token que se muestra. Si se necesitan alcances de OAuth adicionales más allá de los que requiere la secuencia de comandos, se pueden especificar en el archivo de manifiesto.
Volver
String
: una representación de string del token de OAuth 2.0
getProjectTriggers()
Obtiene todos los activadores instalables asociados con el proyecto actual y el usuario actual.
Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');
Volver
Trigger[]
: Es un arreglo de los activadores actuales del usuario asociados con este proyecto.
Autorización
Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:
-
https://www.googleapis.com/auth/script.scriptapp
getScriptId()
Obtiene el ID único del proyecto de secuencia de comandos. Este es el método preferido para obtener el identificador único del proyecto de secuencia de comandos en lugar de
. Este ID se puede usar en todos los lugares en los que se proporcionó la clave del proyecto con anterioridad.getProjectKey()
Volver
String
: el ID del proyecto de secuencia de comandos
getService()
Obtiene un objeto que se usa para controlar la publicación de la secuencia de comandos como una aplicación web.
// Get the URL of the published web app. var url = ScriptApp.getService().getUrl();
Volver
Service
: un objeto que se usa para observar y controlar la publicación de la secuencia de comandos como una aplicación web
getUserTriggers(document)
Obtiene todos los activadores instalables que son propiedad de este usuario en el documento determinado, solo para esta secuencia de comandos o complemento. Este método no se puede usar para ver los activadores adjuntos a otras secuencias de comandos.
var doc = DocumentApp.getActiveDocument(); var triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
document | Document | Un archivo de Documentos de Google que puede contener activadores instalables |
Volver
Trigger[]
: Es un arreglo de activadores que pertenecen a este usuario en el documento determinado.
Autorización
Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(form)
Obtiene todos los activadores instalables que pertenecen a este usuario en el formulario dado, solo para esta secuencia de comandos o complemento. Este método no se puede usar para ver los activadores adjuntos a otras secuencias de comandos.
var form = FormApp.getActiveForm(); var triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
form | Form | Un archivo de Formularios de Google que puede contener activadores instalables |
Volver
Trigger[]
: Es un arreglo de activadores que pertenecen a este usuario en el formato especificado.
Autorización
Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(spreadsheet)
Obtiene todos los activadores instalables que pertenecen a este usuario en la hoja de cálculo determinada, solo para esta secuencia de comandos o complemento. Este método no se puede usar para ver los activadores adjuntos a otras secuencias de comandos.
var ss = SpreadsheetApp.getActiveSpreadsheet(); var triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
spreadsheet | Spreadsheet | Un archivo de Hojas de cálculo de Google que puede contener activadores instalables. |
Volver
Trigger[]
: Es un arreglo de activadores que posee este usuario en la hoja de cálculo determinada.
Autorización
Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:
-
https://www.googleapis.com/auth/script.scriptapp
invalidateAuth()
Invalida la autorización que tiene el usuario vigente para ejecutar la secuencia de comandos actual. Se usa a fin de invalidar cualquier permiso para la secuencia de comandos actual. Esto es especialmente útil para las funciones etiquetadas como autorización única. Debido a que las funciones de autorización únicas se pueden llamar solo la primera ejecución después de que la secuencia de comandos ha adquirido la autorización, si deseas realizar una acción posteriormente, debes revocar cualquier autorización que tenga la secuencia de comandos para que el usuario pueda volver a ver el diálogo de autorización.
ScriptApp.invalidateAuth();
Arroja
Error
: cuando falla la invalidación
newStateToken()
Crea un compilador para un token de estado que se puede usar en una API de devolución de llamada (como un flujo de OAuth).
// Generate a callback URL, given the name of a callback function. The script does not need to // be published as a web app; the /usercallback URL suffix replaces /edit in any script's URL. function getCallbackURL(callbackFunction) { // IMPORTANT: Replace string below with the URL from your script, minus the /edit at the end. var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; var urlSuffix = '/usercallback?state='; var stateToken = ScriptApp.newStateToken() .withMethod(callbackFunction) .withTimeout(120) .createToken(); return scriptUrl + urlSuffix + stateToken; }
En la mayoría de los flujos de OAuth2, el token state
se pasa directamente al extremo de autorización (no como parte de la URL de devolución de llamada) y, luego, el extremo de autorización lo pasa como parte de la URL de devolución de llamada.
Por ejemplo:
- La secuencia de comandos redirecciona al usuario a la URL de autorización de OAuth2:
https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
- El usuario hace clic en Autorizar y la página de autorización de OAuth2 redirecciona al usuario de nuevo a
https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
. - El redireccionamiento anterior (de vuelta a
http://script.google.com/...
) hace que la solicitud del navegador a/usercallback
, que invoca el método especificado porStateTokenBuilder.withMethod(method)
.
Volver
StateTokenBuilder
: un objeto que se usa para continuar el proceso de compilación de tokens de estado
newTrigger(functionName)
Comienza el proceso de creación de un activador instalable que, cuando se activa, llama a una función determinada.
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
functionName | String | La función a la que se llamará cuando se active el activador Puedes usar funciones de las bibliotecas incluidas, como Library.libFunction1 . |
Volver
TriggerBuilder
: un objeto que se usa para continuar el proceso de compilación del activador
Autorización
Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:
-
https://www.googleapis.com/auth/script.scriptapp