Error de referencia $ no se define en onFormSubmit

Hola Estoy haciendo un script que comprobará un formulario de Google para una respuesta y luego editar una hoja de Google basado en esa respuesta. El script está ligado al formulario y el código se ve así:

function onFormSubmit(e) {
var formResponse = e.response;
var itemResponses = formResponse.getItemResponses();
var Weapon = itemResponses[0].getResponse();
var Death = itemResponses[1].getResponse();

var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1f-R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc/edit?usp=sharing');
var i = 1;

while (ss.getRange(1, i).getValue() != "")
{
  if (Weapon == ss.getRange(1, i).getValue())
  {
    if (Death == "No") {ss.getRange(2, i).setValue(ss.getRange(2, i).getValue() + 1);}
    else {ss.getRange(3, i).setValue(ss.getRange(3, i).getValue() + 1);}
    break;
  }
}

}

Pero cuando el código se ejecuta, obtengo el error ReferenceError:R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc is not defined at onFormSubmit(Albionscriptmain:9:34)

Al principio pensé que esto era debido a problemas de acceso y seguridad, pero todavía recibo este error después de hacer un enlace de participación con privilegios editoriales. ¿Puede ser que el código está vinculado al formulario? Pero lo apunté al formulario para acceder
formResponse.getItemResponses();

Soy muy nuevo en esto pero tengo conocimientos previos en la programación. Cualquier ayuda y crítica es muy apreciada!

Pregunta hecha hace 3 años, 5 meses, 0 días - Por devdynamox


3 Respuestas:

  • Lo siento por la respuesta poco clara pero meterme con la seguridad fue la forma en que arreglé este problema. Realmente no puedo recordar todo lo que hice pero aquí es lo que puedo recordar:

    1. Enable google aps script Api.

    2. Creando el enlace compartiendo la hoja con todos los privilegios.

    Espero que esto ayude a alguien que tiene o ha tenido un problema similar al mío!

    Respondida el Dec 16, 2020 a las 13:26 - por cyberjedi

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás recibiendo se debe a que estás intentando abrir una hoja de cálculo mediante la URL directa en esta parte del código:

    javascript
    var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1f-R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc/edit?usp=sharing');
    

    El error ReferenceError:R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc is not defined at onFormSubmit(Albionscriptmain:9:34) indica que el valor 1f-R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc no está definido en ese contexto.

    Para solucionar este problema, te recomendaría guardar previamente el ID de la hoja de cálculo en una variable y luego utilizar esa variable en openById en lugar de openByUrl. Por ejemplo:

    javascript
    var spreadsheetId = 'ID_DE_TU_HOJA_DE_CALCULO'; // Aquí debes colocar el ID de tu hoja de cálculo
    var ss = SpreadsheetApp.openById(spreadsheetId);
    

    Debes reemplazar 'ID_DE_TU_HOJA_DE_CALCULO' con el ID de la hoja de cálculo a la que necesitas acceder. Puedes encontrar este ID en la URL de tu hoja de cálculo.

    Además, asegúrate de que este código esté dentro de una función que se ejecuta en respuesta a un evento, como onFormSubmit, para que pueda acceder correctamente al evento e.

    Espero que esta solución te ayude a resolver tu problema. ¡Déjame saber si necesitas más ayuda!

    Respondida el Dec 17, 2020 a las 13:25 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás recibiendo, ReferenceError:R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc is not defined, indica que el script no puede encontrar la variable R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc. Esta variable parece ser el ID de la hoja de cálculo de Google a la que intentas acceder.

    Para resolver este problema, asegúrate de que el ID de la hoja de cálculo sea correcto. Puedes encontrarlo en la URL de la hoja de cálculo en tu navegador. Por ejemplo, si la URL de tu hoja de cálculo es https://docs.google.com/spreadsheets/d/1f-R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc/edit?usp=sharing, entonces el ID de la hoja de cálculo es 1f-R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc.

    Una vez que tengas el ID de la hoja de cálculo correcto, asegúrate de guardarlo como una variable y luego utilízalo en tu script. Aquí tienes un ejemplo de cómo podrías hacerlo:

    
    const SPREADSHEET_ID = '1f-R8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc';
    
    function onFormSubmit(e) {
      const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
      // El resto del código aquí
    }
    

    También es importante asegurarte de que el script tenga acceso a la hoja de cálculo. Puedes hacerlo compartiendo la hoja de cálculo con el correo electrónico del proyecto del script. Para encontrar el correo electrónico del proyecto del script, ve a Recursos > Todas las versiones del proyecto y haz clic en el botón Ver manifiesto del proyecto. El correo electrónico del proyecto se mostrará en la sección Editores del proyecto.

    Espero que esto resuelva el problema. Si sigues teniendo problemas, no dudes en preguntar.

    Respondida el Dec 17, 2020 a las 13:33 - por Gemini

    Votos positivos: 0 | Votos negativos: 0