Class UrlFetchApp

URL가져오기

인터넷을 통해 리소스를 가져오고 다른 호스트와 통신합니다.

이 서비스를 사용하면 스크립트가 URL을 가져와 다른 애플리케이션과 통신하거나 웹의 다른 리소스에 액세스할 수 있습니다. 스크립트는 URL Fetch 서비스를 사용하여 HTTP 및 HTTPS 요청을 실행하고 응답을 수신할 수 있습니다. URL Fetch 서비스는 효율성과 확장성을 위해 Google의 네트워크 인프라를 사용합니다.

이 서비스를 사용하여 이루어진 요청은 지정된 IP 범위 풀에서 시작됩니다. 이러한 요청을 허용 목록에 추가하거나 승인해야 하는 경우 IP 주소의 전체 목록을 조회할 수 있습니다.

이 서비스에는 https://www.googleapis.com/auth/script.external_request 범위가 필요합니다. 대부분의 경우 Apps Script는 스크립트에 필요한 범위를 자동으로 감지하고 포함하지만 범위를 명시적으로 설정하는 경우 UrlFetchApp를 사용하려면 이 범위를 수동으로 추가해야 합니다.

참고 항목

메서드

메서드반환 유형간략한 설명
fetch(url)HTTPResponseURL을 가져오기 위한 요청을 실행합니다.
fetch(url, params)HTTPResponse선택적 고급 매개변수를 사용하여 URL을 가져오도록 요청합니다.
fetchAll(requests)HTTPResponse[]선택적 고급 매개변수를 사용하여 여러 URL을 가져오기 위해 여러 번 요청합니다.
getRequest(url)Object작업이 호출된 경우 이루어진 요청을 반환합니다.
getRequest(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());

매개변수

이름유형설명
urlString가져올 URL입니다. URL은 최대 2,082자(영문 기준)까지 가능합니다.

리턴

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);

매개변수

이름유형설명
urlString가져올 URL입니다. URL은 최대 2,082자(영문 기준)까지 가능합니다.
paramsObject아래에 정의된 대로 고급 매개변수를 지정하는 선택적 JavaScript 객체입니다.

고급 매개변수

이름유형설명
contentTypeString콘텐츠 유형 (기본값: 'application/x-www-form-urlencoded') 콘텐츠 유형의 또 다른 예는 'application/xml; charset=utf-8'입니다.
headersObject요청의 HTTP 헤더에 관한 JavaScript 키/값 매핑
methodString요청의 HTTP 메서드(get, delete, patch, post 또는 put)입니다. 기본값은 get입니다.
payloadString요청의 페이로드 (즉, POST 본문) 일부 HTTP 메서드 (예: GET)는 페이로드를 허용하지 않습니다. 문자열, 바이트 배열, blob 또는 JavaScript 객체일 수 있습니다. JavaScript 객체는 양식 필드 이름과 값의 맵으로 해석되며, 여기서 값은 문자열 또는 blob일 수 있습니다.
useIntranetBoolean지원 중단되었습니다. 이렇게 하면 가져오기가 (지원 중단됨) SDC를 통해 도메인에 연결된 인트라넷 내에서 지정된 URL을 확인하도록 지시합니다.
validateHttpsCertificatesBooleanfalse인 경우 가져오기는 HTTPS 요청에 대한 잘못된 인증서를 무시합니다. 기본값은 true입니다.
followRedirectsBooleanfalse인 경우 가져오기가 자동으로 HTTP 리디렉션을 따르지 않으며 원래 HTTP 응답을 반환합니다. 기본값은 true입니다.
muteHttpExceptionsBooleantrue인 경우 응답 코드가 실패를 나타내도 가져오기가 예외를 발생시키지 않고 대신 HTTPResponse를 반환합니다. 기본값은 false입니다.
escapingBooleanURL의 false 예약된 문자가 이스케이프되지 않은 경우 기본값은 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]);

매개변수

이름유형설명
requestsObject[]아래에 정의된 대로 요청을 지정하는 URL 또는 JavaScript 객체의 배열입니다.

고급 매개변수

이름유형설명
urlString가져올 URL입니다. URL은 최대 2,082자(영문 기준)까지 가능합니다.
contentTypeString콘텐츠 유형 (기본값: 'application/x-www-form-urlencoded') 콘텐츠 유형의 또 다른 예는 'application/xml; charset=utf-8'입니다.
headersObject요청의 HTTP 헤더에 관한 JavaScript 키/값 매핑
methodString요청의 HTTP 메서드(get, delete, patch, post 또는 put)입니다. 기본값은 get입니다.
payloadString요청의 페이로드 (즉, POST 본문) 일부 HTTP 메서드 (예: GET)는 페이로드를 허용하지 않습니다. 문자열, 바이트 배열, blob 또는 JavaScript 객체일 수 있습니다. JavaScript 객체는 양식 필드 이름과 값의 맵으로 해석되며, 여기서 값은 문자열 또는 blob일 수 있습니다.
useIntranetBoolean지원 중단되었습니다. 이렇게 하면 가져오기가 (지원 중단됨) SDC를 통해 도메인에 연결된 인트라넷 내에서 지정된 URL을 확인하도록 지시합니다.
validateHttpsCertificatesBooleanfalse인 경우 가져오기는 HTTPS 요청에 대한 잘못된 인증서를 무시합니다. 기본값은 true입니다.
followRedirectsBooleanfalse인 경우 가져오기가 자동으로 HTTP 리디렉션을 따르지 않으며 원래 HTTP 응답을 반환합니다. 기본값은 true입니다.
muteHttpExceptionsBooleantrue인 경우 가져오기가 응답 코드가 실패를 나타내는 경우 예외를 발생시키지 않고 대신 HTTPResponse를 반환합니다. 기본값은 false입니다.
escapingBooleanfalse인 경우 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]}`);
}

매개변수

이름유형설명
urlString조회할 URL입니다. URL은 최대 2,082자(영문 기준)까지 가능합니다.

리턴

Object: 필드 이름과 값의 매핑입니다. 맵에는 url, method, contentType, payload, headers 키가 하나 이상 있습니다.

승인

이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상의 승인이 필요합니다.

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

getRequest(url, params)

작업이 호출된 경우 이루어진 요청을 반환합니다.

이 메서드는 실제로 요청을 실행하지 않습니다.

매개변수

이름유형설명
urlString조회할 URL입니다. URL은 최대 2,082자(영문 기준)까지 가능합니다.
paramsObject아래에 정의된 대로 고급 매개변수를 지정하는 JavaScript 객체(선택사항)입니다.

고급 매개변수

이름유형설명
contentTypeString콘텐츠 유형 (기본값: 'application/x-www-form-urlencoded') 콘텐츠 유형의 또 다른 예는 'application/xml; charset=utf-8'입니다.
headersObject요청의 HTTP 헤더에 관한 JavaScript 키/값 매핑
methodString요청의 HTTP 메서드(get, delete, patch, post 또는 put)입니다. 기본값은 get입니다.
payloadString요청의 페이로드 (즉, POST 본문) 일부 HTTP 메서드 (예: GET)는 페이로드를 허용하지 않습니다. 문자열, 바이트 배열, blob 또는 JavaScript 객체일 수 있습니다. JavaScript 객체는 양식 필드 이름과 값의 맵으로 해석되며, 여기서 값은 문자열 또는 blob일 수 있습니다.
useIntranetBoolean지원 중단되었습니다. 이렇게 하면 가져오기가 (지원 중단됨) SDC를 통해 도메인에 연결된 인트라넷 내에서 지정된 URL을 확인하도록 지시합니다.
validateHttpsCertificatesBooleanfalse인 경우 가져오기는 HTTPS 요청에 대한 잘못된 인증서를 무시합니다. 기본값은 true입니다.
followRedirectsBooleanfalse인 경우 가져오기가 자동으로 HTTP 리디렉션을 따르지 않으며 원래 HTTP 응답을 반환합니다. 기본값은 true입니다.
muteHttpExceptionsBooleantrue인 경우 응답 코드가 실패를 나타내도 가져오기가 예외를 발생시키지 않고 대신 HTTPResponse를 반환합니다. 기본값은 false입니다.
escapingBooleanURL의 false 예약된 문자가 이스케이프되지 않은 경우 기본값은 true입니다.

리턴

Object: 필드 이름과 값의 매핑입니다. 맵에는 url, method, contentType, payload, headers 키가 하나 이상 있습니다.

승인

이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상의 승인이 필요합니다.

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