Administración de proyectos

La API de Google Apps Script te permite crear y modificar proyectos de Google Apps Script desde tu app. En los ejemplos de esta página, se muestra cómo se pueden realizar operaciones comunes de administración de proyectos con la API.

Para usar la API, primero debes habilitarla.

En estos ejemplos, se usa el marcador de posición scriptId para indicar dónde debes proporcionar el ID del proyecto de secuencia de comandos. Sigue los pasos que se indican a continuación para encontrar el ID de la secuencia de comandos:

  1. En el proyecto de Apps Script, en la parte superior izquierda, haz clic en Configuración del proyecto .
  2. Junto a "ID de secuencia de comandos", haz clic en Copiar.

Crea un nuevo proyecto de Apps Script

La siguiente solicitud projects.create crea una nueva secuencia de comandos independiente.

POST https://scriptmanagement.googleapis.com/v1/projects/
{
  "title": "My Script"
}

Recupera los metadatos del proyecto

La siguiente solicitud projects.get obtiene los metadatos del proyecto de secuencia de comandos .

GET https://scriptmanagement.googleapis.com/v1/projects/scriptId

La respuesta consta de un objeto como este:

{
  "scriptId": "scriptId",
  "title": "My Title",
  "parentId": "parentId",
  "createTime": "2017-10-02T15:01:23.045123456Z",
  "updateTime": "2017-10-02T15:01:23.045123456Z",
  "creator": { "name": "Grant" },
  "lastModifyUser": { "name": "Grant" },
}

Recupera los archivos del proyecto

La siguiente solicitud projects.getContent obtiene el contenido del proyecto de secuencia de comandos, incluido el código fuente y los metadatos de cada archivo de secuencia de comandos.

GET https://scriptmanagement.googleapis.com/v1/projects/scriptId/content

La respuesta consta de un Content objeto como este:

{
  "scriptId": "scriptId",
  "files": [{
    "name": "My Script",
    "type": "SERVER_JS",
    "source": "function hello(){\nconsole.log('Hello world');}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z",
    "functionSet": {
      "values": [
        "name": "helloWorld"
      ]
    }
  }, {
    "name": "appsscript",
    "type": "JSON",
    "source": "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }]
}

Actualiza los archivos del proyecto

La siguiente projects.updateContent actualiza el contenido del proyecto de secuencia de comandos especificado. Este contenido se almacena como la versión HEAD y se usa cuando la secuencia de comandos se ejecuta como un proyecto ejecutable de la API.

PUT https://scriptmanagement.googleapis.com/v1/projects/scriptID/content
{
  "files": [{
    "name": "index",
    "type": "HTML",
    "source": "<html> <header><title>HTML Page</title></header> <body> My HTML </body> </html>"
  }, {
    "name": "My Script",
    "type": "SERVER_JS",
    "source": "function hello(){\nconsole.log('Hello world');}",
  }, {
    "name": "appsscript",
    "type": "JSON",
    "source": "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }]
}

La respuesta consta de un Content objeto como este:

{
  "scriptId": "scriptId",
  "files": [{
    "name": "index",
    "type": "HTML",
    "source": "<html> <header><title>HTML Page</title></header> <body> My HTML </body> </html>",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }, {
    "name": "My Script",
    "type": "SERVER_JS",
    "source": "function hello(){\nconsole.log('Hello world');}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z",
    "functionSet": {
      "values": [
        "name": "helloWorld"
      ]
    }
  }, {
    "name": "appsscript",
    "type": "JSON",
    "source": "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }]
}