Administración de proyectos

La API de Apps Script te permite crear y modificar proyectos de Apps Script desde tu app. Los ejemplos de esta página ilustran cómo se pueden lograr algunas operaciones comunes de administración de proyectos con la API.

NOTA: La API de Apps Script debe estar habilitada antes de su uso.

En estos ejemplos, se usan los marcadores de posición scriptId para indicar dónde proporcionarías el ID del proyecto de la secuencia de comandos. Sigue estos pasos 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 la 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"
}

Cómo recuperar metadatos del proyecto

La siguiente solicitud projects.get obtiene los metadatos del proyecto de la 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" },
}

Cómo recuperar archivos de proyectos

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

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

La respuesta consta de un objeto Content 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 solicitud 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 objeto Content 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"
  }]
}