Tengo un proyecto de Google Apps Script que necesito recibir alguna solicitud a través de los métodos GET y POST. Todo va bien con el método GET porque puedo simularlo a través de URL en el navegador; el problema esta en el metodo POST, no puedo hacerlo via CURL me muestra un error de permisos de Google.
Aquí está mi código
function doPost(e) { let response = ContentService.createTextOutput() response.setContent(JSON.stringify({ response: e })) response.setMimeType(ContentService.MimeType.JSON) return response } function foo() { var url = "https://script.google.com/macros/s/id/dev"; var headers = {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}; var payload = { debug: 'data ok' } var params = { "method": "post", "contentType": "application/json", "headers": headers, "payload": JSON.stringify(payload), "muteHttpExceptions": true }; var response = UrlFetchApp.fetch(url, params).getResponseCode() Logger.log(response); }Necesito depurar con un enlace https://script.google.com/macros/s/id/**dev* *. El propósito no es generar una versión con cada prueba.
Creo que su objetivo es el siguiente.
https://script.google.com/macros/s/###/dev usando un comando curl.En este caso, ¿qué tal el siguiente comando curl?
Cuando se usa su carga útil, se convierte en lo siguiente.
curl -L \ -d '{"debug": "data ok"}' \ -H "Authorization: Bearer ###your access token###" \ -H "Content-Type: application/json" \ "https://script.google.com/macros/s/###/dev" Para acceder a https://script.google.com/macros/s/###/dev , se requiere incluir el token de acceso en el encabezado de la solicitud. Y como ámbito, se requiere su uso para la API de Drive. Por ejemplo, es https://www.googleapis.com/auth/drive.readonly .
Si desea probar esto, puede recuperar el token de acceso utilizando la siguiente secuencia de comandos de muestra de Google Apps Script. Puede usar este token de acceso con el comando curl anterior.
function getAccesstoken() { console.log(ScriptApp.getOAuthToken()) // DriveApp.getFiles(); // This is used for automatically detecting the scope of `https://www.googleapis.com/auth/drive.readonly`. } En este caso, e de doPost(e) es como sigue.
{"contextPath":"","parameter":{},"postData":{"contents":"{\"debug\": \"data ok\"}","length":20,"name":"postData","type":"application/json"},"contentLength":20,"queryString":"","parameters":{}}En el estado actual , las Test Deployments solo son accesibles para los usuarios que tienen acceso de edición al script. Esto significa que debe iniciar sesión para acceder a esta implementación y no puede hacerlo a través de una solicitud cURL a menos que tenga las cookies necesarias para hacerlo.
Como solución, siga estos pasos:
Google Developer Tools > Network Tab ./dev/ endpoint.dev , haga clic en el segundo botón y vaya a Copy > Copy as cURL . Esto copiará la solicitud con todas las cookies necesarias.-X POST .La respuesta incluye el HTML de la página deseada.