Получайте доступ к ресурсам и общайтесь с другими хостами через Интернет.
Этот сервис позволяет скриптам взаимодействовать с другими приложениями или получать доступ к другим ресурсам в сети путем получения 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