scripts script pagina mostrar mientras google funcion ejecutar dopost despues cargar carga asincrona apps application app antes javascript google-apps-script fetch

javascript - script - mostrar loading mientras carga pagina jquery



Servicio de contenido para Google Apps Script que devuelve HTML en lugar de JSON (1)

Probando la API de servicio de contenido y el ejemplo es devolver HTML cuando debería estar devolviendo JSON, ¿qué estoy haciendo mal?

https://developers.google.com/apps-script/guides/content

function doGet(request) { var events = CalendarApp.getEvents( new Date(Number(request.parameters.start) * 1000), new Date(Number(request.parameters.end) * 1000)); var result = { available: events.length == 0 }; return ContentService.createTextOutput(JSON.stringify(result)) .setMimeType(ContentService.MimeType.JSON); }

GAS de otro archivo que intenta hacer la solicitud:

function myFunction() { var url = "published URL"; url+="?start=1325437200&end=1325439000"; var options = { method:"get" } var response = UrlFetchApp.fetch(url,options).getContentText(); response = JSON.parse(response); //error, unexpected token < }


Su uso de ContentService es correcto, el código funciona exactamente como es. Aquí hay un enlace a mi copia de tu código publicado como una aplicación web:

https://script.google.com/macros/s/AKfycbzx2L643LHw0oQAq1jBmKQh2ju_znGfmdj78dUypj36iF-s91w/exec

El problema con el que se está encontrando está relacionado con la Autorización o Autenticación, si el script publicado no está autorizado, se devuelve un mensaje de error HTML.

Para verificar si ese es su problema, simplemente acceda a la URL publicada directamente en su navegador. Si ve que se muestra JSON, la Autorización no es el problema. Si ve el mensaje de error "La autorización es necesaria para realizar esa acción", abra su secuencia de comandos publicada y seleccione "doGet" en el menú Ejecutar, luego siga las instrucciones de autorización.

Lo más probable es que el problema esté relacionado con la publicación de su secuencia de comandos. Para acceder al script publicado desde otro script, debe publicarse con la configuración " Quién tiene acceso a la aplicación " como " Cualquiera, incluso anónimo ". Si usa cualquier otro valor, Google devuelve una página de inicio de sesión HTML en lugar de su respuesta JSON, y obtiene el error que está viendo.

Esto sucede porque las solicitudes enviadas desde Google Apps Script a través de URLFetchApp no ​​están autenticadas, no llevan las credenciales del usuario que ejecuta el código y vienen como solicitudes anónimas.

Si no permite "Cualquiera, incluso anónimo" en la configuración de publicación, Google redirige las solicitudes no autenticadas a la página de inicio de sesión de Google.