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 accederformResponse.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, 7 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:
Enable google aps script Api.
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 valor1f-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 deopenByUrl
. 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 eventoe
.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 variableR8y62j62JmstYPxZ521sJ0wuqKipn1m4puXreeHbc
. 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 es1f-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