Class UrlFetchApp

UrlFetchApp

Recupera recursos y comunícate con otros hosts a través de Internet.

Este servicio permite que las secuencias de comandos se comuniquen con otras aplicaciones o accedan a otros recursos en la Web mediante la recuperación de URL. Una secuencia de comandos puede usar el servicio de recuperación de URL para emitir solicitudes HTTP y HTTPS y recibir respuestas. El servicio de recuperación de URL usa la infraestructura de red de Google con fines de eficiencia y escalamiento.

Las solicitudes realizadas con este servicio se originan en un conjunto de rangos de IP. Puedes buscar la lista completa de direcciones IP si necesitas incluir estas solicitudes en la lista de entidades permitidas o aprobarlas.

Este servicio requiere el alcance https://www.googleapis.com/auth/script.external_request. En la mayoría de los casos, Apps Script detecta e incluye automáticamente los alcances que necesita una secuencia de comandos, pero si configuras los permisos de forma explícita, debes agregar este alcance de forma manual para usar UrlFetchApp.

Consulta también

Métodos

MétodoTipo de datos que se muestraDescripción breve
fetch(url)HTTPResponseRealiza una solicitud para recuperar una URL.
fetch(url, params)HTTPResponseRealiza una solicitud para recuperar una URL con parámetros avanzados opcionales.
fetchAll(requests)HTTPResponse[]Realiza varias solicitudes para recuperar varias URLs con parámetros avanzados opcionales.
getRequest(url)ObjectMuestra la solicitud que se realiza si se invocó la operación.
getRequest(url, params)ObjectMuestra la solicitud que se realiza si se invocó la operación.

Documentación detallada

fetch(url)

Realiza una solicitud para recuperar una URL.

Esto funciona con HTTP y HTTPS.

// The code below logs the HTML code of the Google home page.
var response = UrlFetchApp.fetch("http://www.google.com/");
Logger.log(response.getContentText());

Parámetros

NombreTipoDescripción
urlStringLa URL que se recuperará. La URL puede tener hasta 2,082 caracteres.

Devolvedor

HTTPResponse: Son los datos de la respuesta HTTP.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/script.external_request

fetch(url, params)

Realiza una solicitud para recuperar una URL con parámetros avanzados opcionales.

Esto funciona con HTTP y HTTPS.

// Make a GET request and log the returned content.
var response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
// Make a POST request with form data.
var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
var formData = {
  'name': 'Bob Smith',
  'email': 'bob@example.com',
  'resume': resumeBlob
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it automatically
// defaults to either 'application/x-www-form-urlencoded'
// or 'multipart/form-data')
var options = {
  'method' : 'post',
  'payload' : formData
};
UrlFetchApp.fetch('https://httpbin.org/post', options);
// Make a POST request with a JSON payload.
var data = {
  'name': 'Bob Smith',
  'age': 35,
  'pets': ['fido', 'fluffy']
};
var options = {
  'method' : 'post',
  'contentType': 'application/json',
  // Convert the JavaScript object to a JSON string.
  'payload' : JSON.stringify(data)
};
UrlFetchApp.fetch('https://httpbin.org/post', options);

Parámetros

NombreTipoDescripción
urlStringLa URL que se recuperará. La URL puede tener hasta 2,082 caracteres.
paramsObjectEl objeto de JavaScript opcional que especifica parámetros avanzados como se define a continuación.

Parámetros avanzados

NombreTipoDescripción
contentTypeStringel tipo de contenido (el valor predeterminado es "application/x-www-form-urlcoded"). Otro ejemplo de tipo de contenido es “application/xml; charset=utf-8”.
headersObjectun mapa de par clave-valor de JavaScript de encabezados HTTP para la solicitud
methodStringel método HTTP para la solicitud: get, delete, patch, post o put. El valor predeterminado es get.
payloadStringla carga útil (es decir, el cuerpo de POST) de la solicitud. Algunos métodos HTTP (por ejemplo, GET) no aceptan una carga útil. Puede ser una string, un array de bytes, un BLOB o un objeto de JavaScript. Un objeto JavaScript se interpreta como una asignación de nombres de campos de formulario a valores, en la que los valores pueden ser strings o BLOB.
useIntranetBooleanYa no está disponible. Esto indica a la recuperación que resuelva la URL especificada dentro de la intranet vinculada a tu dominio mediante SDC (obsoleta).
validateHttpsCertificatesBooleanSi es false, la recuperación ignora los certificados no válidos para las solicitudes HTTPS. El valor predeterminado es true.
followRedirectsBooleanSi es false, la recuperación no sigue los redireccionamientos HTTP de forma automática, sino que muestra la respuesta HTTP original. El valor predeterminado es true.
muteHttpExceptionsBooleanSi es true, la recuperación no arroja una excepción si el código de respuesta indica un error y, en su lugar, muestra HTTPResponse. El valor predeterminado es false.
escapingBooleanSi no hay escape de false caracteres reservados en la URL. El valor predeterminado es true.

Devolvedor

HTTPResponse: Son los datos de la respuesta HTTP.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/script.external_request

fetchAll(requests)

Realiza varias solicitudes para recuperar varias URLs con parámetros avanzados opcionales.

Esto funciona con HTTP y HTTPS.

// Make both a POST request with form data, and a GET request.
var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
var formData = {
  'name': 'Bob Smith',
  'email': 'bob@example.com',
  'resume': resumeBlob
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it defaults to either
// 'application/x-www-form-urlencoded' or 'multipart/form-data')
var request1 = {
  'url': 'https://httpbin.org/post',
  'method' : 'post',
  'payload' : formData
};
// A request may also just be a URL.
var request2 = 'https://httpbin.org/get?key=value';
UrlFetchApp.fetchAll([request1, request2]);

Parámetros

NombreTipoDescripción
requestsObject[]Un array de objetos JavaScript o URLs que especifican solicitudes como se define a continuación.

Parámetros avanzados

NombreTipoDescripción
urlStringla URL que se recuperará. La URL puede tener hasta 2,082 caracteres.
contentTypeStringel tipo de contenido (el valor predeterminado es "application/x-www-form-urlcoded"). Otro ejemplo de tipo de contenido es “application/xml; charset=utf-8”.
headersObjectun mapa de par clave-valor de JavaScript de encabezados HTTP para la solicitud
methodStringel método HTTP para la solicitud: get, delete, patch, post o put. El valor predeterminado es get.
payloadStringla carga útil (es decir, el cuerpo de POST) de la solicitud. Algunos métodos HTTP (por ejemplo, GET) no aceptan una carga útil. Puede ser una string, un array de bytes, un BLOB o un objeto de JavaScript. Un objeto JavaScript se interpreta como una asignación de nombres de campos de formulario a valores, en la que los valores pueden ser strings o BLOB.
useIntranetBooleanYa no está disponible. Esto indica a la recuperación que resuelva la URL especificada dentro de la intranet vinculada a tu dominio mediante SDC (obsoleta).
validateHttpsCertificatesBooleanSi es false, la recuperación ignora los certificados no válidos para las solicitudes HTTPS. El valor predeterminado es true.
followRedirectsBooleanSi es false, la recuperación no sigue los redireccionamientos HTTP de forma automática, sino que muestra la respuesta HTTP original. El valor predeterminado es true.
muteHttpExceptionsBooleanSi es true, la recuperación no arroja una excepción si el código de respuesta indica un error y, en su lugar, muestra HTTPResponse. El valor predeterminado es false.
escapingBooleanSi es false, los caracteres reservados en la URL no tienen escape. El valor predeterminado es true.

Devolvedor

HTTPResponse[]: Es un array de datos de respuesta HTTP de cada solicitud de entrada.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/script.external_request

getRequest(url)

Muestra la solicitud que se realiza si se invocó la operación.

En realidad, este método no emite la solicitud.

// The code below logs the value for every key of the returned map.
var response = UrlFetchApp.getRequest("http://www.google.com/");
for(i in response) {
  Logger.log(i + ": " + response[i]);
}

Parámetros

NombreTipoDescripción
urlStringLa URL que se debe buscar. La URL puede tener hasta 2,082 caracteres.

Devolvedor

Object: Es un mapa del nombre del campo al valor. El mapa tiene, al menos, las siguientes claves: url, method, contentType, payload y headers.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/script.external_request

getRequest(url, params)

Muestra la solicitud que se realiza si se invocó la operación.

En realidad, este método no emite la solicitud.

Parámetros

NombreTipoDescripción
urlStringLa URL que se debe buscar. La URL puede tener hasta 2,082 caracteres.
paramsObjectUn objeto JavaScript opcional que especifica parámetros avanzados como se define a continuación.

Parámetros avanzados

NombreTipoDescripción
contentTypeStringel tipo de contenido (el valor predeterminado es "application/x-www-form-urlcoded"). Otro ejemplo de tipo de contenido es “application/xml; charset=utf-8”.
headersObjectun mapa de par clave-valor de JavaScript de encabezados HTTP para la solicitud
methodStringel método HTTP para la solicitud: get, delete, patch, post o put. El valor predeterminado es get.
payloadStringla carga útil (es decir, el cuerpo de POST) de la solicitud. Algunos métodos HTTP (por ejemplo, GET) no aceptan una carga útil. Puede ser una string, un array de bytes, un BLOB o un objeto de JavaScript. Un objeto JavaScript se interpreta como una asignación de nombres de campos de formulario a valores, en la que los valores pueden ser strings o BLOB.
useIntranetBooleanYa no está disponible. Esto indica a la recuperación que resuelva la URL especificada dentro de la intranet vinculada a tu dominio mediante SDC (obsoleta).
validateHttpsCertificatesBooleanSi es false, la recuperación ignora los certificados no válidos para las solicitudes HTTPS. El valor predeterminado es true.
followRedirectsBooleanSi es false, la recuperación no sigue los redireccionamientos HTTP de forma automática, sino que muestra la respuesta HTTP original. El valor predeterminado es true.
muteHttpExceptionsBooleanSi es true, la recuperación no arroja una excepción si el código de respuesta indica un error y, en su lugar, muestra HTTPResponse. El valor predeterminado es false.
escapingBooleanSi no se escapan los caracteres reservados de false en la URL. El valor predeterminado es true.

Devolvedor

Object: Es un mapa del nombre del campo al valor. El mapa tiene, al menos, las siguientes claves: url, method, contentType, payload y headers.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/script.external_request