Configure un proyecto de Apps Script

Configurar un proyecto de Apps Script para llamar a la API de Formularios de Google directamente a través de una llamada de REST es sencillo. Si ya configuraste un proyecto de Google Cloud, haz lo siguiente:

  1. Crea un nuevo proyecto de Apps Script.
  2. Cambia el número de proyecto de Google Cloud asociado a fin de que coincida con el proyecto que habilitaste para la API de Formularios de Google.
  3. Edita el archivo de manifiesto (appsscript.json) para agregar los permisos de OAuth necesarios.
  4. Agrega código de Apps Script para recuperar un token de OAuth y hacer una llamada de REST con el token.

Aquí encontrarás una explicación rápida de estos pasos.

Crea y configura un nuevo proyecto de Apps Script

  1. Con el mismo ID de Google con el que configuraste tu proyecto de GCP, ve al Panel de Apps Script y haz clic en Proyecto nuevo.
  2. Una vez que tu proyecto esté abierto, haz clic en Configuración del proyecto.
  3. Selecciona la casilla de verificación Mostrar el archivo de manifiesto "appsscript.json" en el editor.
  4. En la sección Proyecto de Google Cloud Platform (GCP), haz clic en Cambiar proyecto y, luego, ingresa el número de proyecto de GCP que configuraste para la API de Formularios.

Tu proyecto de Apps Script ahora está configurado para acceder a la API de Formularios de Google. El siguiente paso obligatorio es agregar los permisos de OAuth adecuados.

Agrega permisos de OAuth

Para generar un token de OAuth con el alcance adecuado en Apps Script, debes configurar los permisos necesarios en el archivo de manifiesto del proyecto.

  1. En el editor, abre appsscript.json.
  2. Agrega los alcances al cuerpo del manifiesto.

    {
      ...
    "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request",
        "https://www.googleapis.com/auth/drive",
        "https://www.googleapis.com/auth/drive.readonly",
        "https://www.googleapis.com/auth/forms.body",
        "https://www.googleapis.com/auth/forms.body.readonly",
        "https://www.googleapis.com/auth/forms.responses.readonly"
      ],
     ...
     }
    
  3. Haz clic en Save project (Guardar proyecto) y corrige cualquier error de sintaxis si es necesario. Tu proyecto ahora debería poder llamar a la API de Formularios de Google a través de una llamada de REST.

Agrega código de Apps Script para llamar a la API

Antes de escribir el código para llamar a un formulario, debes identificar un formulario de tu propiedad que tenga respuestas y tomar nota de su ID. Puedes encontrar el ID del formulario en la URL cuando lo edites:

https://docs.google.com/forms/d/<FORM_ID>/edit

Para llamar a la API, usarás una llamada UrlFetchApp de Apps Script.

  1. Abra Code.gs y agregue el siguiente código:

    form-api/snippets/retrieve_all_responses.gs
     function callFormsAPI() {
      console.log('Calling the Forms API!');
      var formId = '<YOUR_FORM_ID>';
    
      // Get OAuth Token
     var OAuthToken = ScriptApp.getOAuthToken();
     console.log('OAuth token is: ' + OAuthToken);
     var formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses';
     console.log('formsAPIUrl is: ' + formsAPIUrl);
     var options = {
        'headers': {
          Authorization: 'Bearer ' + OAuthToken,
          Accept: 'application/json'
        },
        'method': 'get'
      };  
    var response = UrlFetchApp.fetch(formsAPIUrl, options);
     console.log('Response from forms.responses was: ' + response);
    }
  2. Reemplaza YOUR_FORM_ID por el valor que anotaste antes.

    Ejemplo: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Haz clic en Guardar proyecto y corrige cualquier error de sintaxis si es necesario.

Prueba el código

  1. Haz clic en Ejecutar.
  2. Autoriza el proyecto según sea necesario con el mismo ID de Google que antes.

Una vez que se inicie, deberías ver una respuesta en el Registro de ejecución similar a la siguiente:

Execution started
Calling the Forms API!
OAuth token is: ya29.a0ARrdaM8IMjtlv…
formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses
Response from Forms.responses was: {
"responses": [
    {
      "responseId":"...",
      "createTime": "2021-03-25T01:23:58.146Z",
      "lastSubmittedTime": "2021-03-25T01:23:58.146607Z",
      "answers": {
        "1e9b0ead": {
          "questionId": "1e9b0ead",
          "textAnswers": {
            "answers": [
              {
                "value": "Red"
              }
            ]
          }
        },
        "773ed8f3": {
          "questionId": "773ed8f3",
          "textAnswers": {
            "answers": [
              {
                "value": "Tesla"
              }
            ]
          }
        }
      }
    }
  ]
}
Execution completed

Próximos pasos

Una vez que hayas llamado correctamente a la API con Apps Script, consulta la documentación de referencia y experimenta realizando otras llamadas a la API.