Class UrlFetchApp

UrlFetchApp

Получайте доступ к ресурсам и общайтесь с другими хостами через Интернет.

Этот сервис позволяет скриптам взаимодействовать с другими приложениями или получать доступ к другим ресурсам в сети путем получения URL-адресов. Скрипт может использовать сервис URL Fetch для отправки HTTP- и HTTPS-запросов и получения ответов. Сервис URL Fetch использует сетевую инфраструктуру Google для повышения эффективности и масштабируемости.

Запросы, отправляемые с использованием этого сервиса, поступают из определенного пула IP-адресов. Вы можете просмотреть полный список IP-адресов, если вам необходимо разрешить или одобрить эти запросы.

Для работы этой службы требуется область действия https://www.googleapis.com/auth/script.external_request . В большинстве случаев Apps Script автоматически определяет и включает необходимые для скрипта области действия, но если вы задаете области действия явно, вам необходимо добавить эту область действия вручную, чтобы использовать UrlFetchApp .

См. также

Методы

Метод Тип возвращаемого значения Краткое описание
fetch(url) HTTPResponse Выполняет запрос на получение URL-адреса.
fetch(url, params) HTTPResponse Выполняет запрос на получение URL-адреса, используя необязательные расширенные параметры.
fetch All(requests) HTTPResponse[] Выполняет несколько запросов для получения нескольких URL-адресов, используя необязательные расширенные параметры.
get Request(url) Object Возвращает запрос, который был отправлен, если операция была вызвана.
get Request(url, params) Object Возвращает запрос, который был бы отправлен, если бы операция была вызвана.

Подробная документация

fetch(url)

Выполняет запрос на получение URL-адреса.

Это работает как по HTTP, так и по HTTPS.

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

Параметры

Имя Тип Описание
url String URL-адрес для загрузки. URL-адрес может содержать до 2082 символов.

Возвращаться

HTTPResponse — данные HTTP-ответа.

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

fetch(url, params)

Выполняет запрос на получение URL-адреса, используя необязательные расширенные параметры.

Это работает как по HTTP, так и по HTTPS.

// Make a GET request and log the returned content.
const response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
// Make a POST request with form data.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const 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')
const options = {
  method: 'post',
  payload: formData,
};
UrlFetchApp.fetch('https://httpbin.org/post', options);
// Make a POST request with a JSON payload.
const data = {
  name: 'Bob Smith',
  age: 35,
  pets: ['fido', 'fluffy'],
};
const 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);

Параметры

Имя Тип Описание
url String URL-адрес для загрузки. URL-адрес может содержать до 2082 символов.
params Object Необязательный объект JavaScript, определяющий расширенные параметры, как указано ниже.

Расширенные параметры

Имя Тип Описание
content Type String Тип содержимого (по умолчанию 'application/x-www-form-urlencoded'). Другой пример типа содержимого: 'application/xml; charset=utf-8'.
headers Object JavaScript-карта ключ/значение HTTP-заголовков запроса
method String Метод HTTP для запроса: get , delete , patch , post или put . По умолчанию используется get .
payload String Полезная нагрузка (то есть тело POST-запроса) для запроса. Некоторые методы HTTP (например, GET) не принимают полезную нагрузку. Она может быть строкой, массивом байтов, двоичным объектом (blob) или объектом JavaScript. Объект JavaScript интерпретируется как сопоставление имен полей формы со значениями, где значениями могут быть либо строки, либо двоичные объекты.
use Intranet Boolean Устарело. Это указывает функции fetch на необходимость разрешения указанного URL-адреса во внутренней сети, связанной с вашим доменом через (устаревший) SDC.
validate Https Certificates Boolean Если false функция fetch игнорирует любые недействительные сертификаты для HTTPS-запросов. По умолчанию значение равно true .
follow Redirects Boolean Если значение false запрос не будет автоматически следовать HTTP-перенаправлениям; он вернет исходный HTTP-ответ. Значение по умолчанию — true .
mute Http Exceptions Boolean Если значение true то при получении данных исключение не генерируется, если код ответа указывает на ошибку, и вместо этого возвращается объект HTTPResponse . Значение по умолчанию — false .
escaping Boolean Если false зарезервированные символы в URL-адресе не экранируются. По умолчанию значение равно true .

Возвращаться

HTTPResponse — данные HTTP-ответа.

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

fetchAll(requests)

Выполняет несколько запросов для получения нескольких URL-адресов, используя необязательные расширенные параметры.

Это работает как по HTTP, так и по HTTPS.

// Make both a POST request with form data, and a GET request.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const 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')
const request1 = {
  url: 'https://httpbin.org/post',
  method: 'post',
  payload: formData,
};
// A request may also just be a URL.
const request2 = 'https://httpbin.org/get?key=value';
UrlFetchApp.fetchAll([request1, request2]);

Параметры

Имя Тип Описание
requests Object[] Массив либо URL-адресов, либо объектов JavaScript, определяющих запросы, как описано ниже.

Расширенные параметры

Имя Тип Описание
url String URL-адрес для загрузки. URL-адрес может содержать до 2082 символов.
content Type String Тип содержимого (по умолчанию 'application/x-www-form-urlencoded'). Другой пример типа содержимого: 'application/xml; charset=utf-8'.
headers Object JavaScript-карта ключ/значение HTTP-заголовков запроса
method String Метод HTTP для запроса: get , delete , patch , post или put . По умолчанию используется get .
payload String Полезная нагрузка (то есть тело POST-запроса) для запроса. Некоторые методы HTTP (например, GET) не принимают полезную нагрузку. Она может быть строкой, массивом байтов, двоичным объектом (blob) или объектом JavaScript. Объект JavaScript интерпретируется как сопоставление имен полей формы со значениями, где значениями могут быть либо строки, либо двоичные объекты.
use Intranet Boolean Устарело. Это указывает функции fetch на необходимость разрешения указанного URL-адреса во внутренней сети, связанной с вашим доменом через (устаревший) SDC.
validate Https Certificates Boolean Если false функция fetch игнорирует любые недействительные сертификаты для HTTPS-запросов. По умолчанию значение равно true .
follow Redirects Boolean Если значение false запрос не будет автоматически следовать HTTP-перенаправлениям; он вернет исходный HTTP-ответ. Значение по умолчанию — true .
mute Http Exceptions Boolean Если true , запрос не генерирует исключение, если код ответа указывает на ошибку, и вместо этого возвращает объект HTTPResponse . Значение по умолчанию — false .
escaping Boolean Если false , зарезервированные символы в URL-адресе не экранируются. По умолчанию значение равно true .

Возвращаться

HTTPResponse[] — массив данных HTTP-ответа от каждого входного запроса.

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

getRequest(url)

Возвращает запрос, который был отправлен, если операция была вызвана.

Этот метод фактически не отправляет запрос.

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

Параметры

Имя Тип Описание
url String URL-адрес для поиска. URL-адрес может содержать до 2082 символов.

Возвращаться

Object — карта, сопоставляющая имя поля со значением. Карта содержит как минимум следующие ключи: url , method , contentType , payload и headers .

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

getRequest(url, params)

Возвращает запрос, который был бы отправлен, если бы операция была вызвана.

Этот метод фактически не отправляет запрос.

Параметры

Имя Тип Описание
url String URL-адрес для поиска. URL-адрес может содержать до 2082 символов.
params Object Необязательный объект JavaScript, определяющий расширенные параметры, как указано ниже.

Расширенные параметры

Имя Тип Описание
content Type String Тип содержимого (по умолчанию 'application/x-www-form-urlencoded'). Другой пример типа содержимого: 'application/xml; charset=utf-8'.
headers Object JavaScript-карта ключ/значение HTTP-заголовков запроса
method String Метод HTTP для запроса: get , delete , patch , post или put . По умолчанию используется get .
payload String Полезная нагрузка (то есть тело POST-запроса) для запроса. Некоторые методы HTTP (например, GET) не принимают полезную нагрузку. Она может быть строкой, массивом байтов, двоичным объектом (blob) или объектом JavaScript. Объект JavaScript интерпретируется как сопоставление имен полей формы со значениями, где значениями могут быть либо строки, либо двоичные объекты.
use Intranet Boolean Устарело. Это указывает функции fetch на необходимость разрешения указанного URL-адреса во внутренней сети, связанной с вашим доменом через (устаревший) SDC.
validate Https Certificates Boolean Если false функция fetch игнорирует любые недействительные сертификаты для HTTPS-запросов. По умолчанию значение равно true .
follow Redirects Boolean Если значение false запрос не будет автоматически следовать HTTP-перенаправлениям; он вернет исходный HTTP-ответ. Значение по умолчанию — true .
mute Http Exceptions Boolean Если значение true то при получении данных исключение не генерируется, если код ответа указывает на ошибку, и вместо этого возвращается объект HTTPResponse . Значение по умолчанию — false .
escaping Boolean Если false зарезервированные символы в URL-адресе не экранируются. По умолчанию значение равно true .

Возвращаться

Object — карта, сопоставляющая имя поля со значением. Карта содержит как минимум следующие ключи: url , method , contentType , payload и headers .

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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