Class UrlFetchApp

UrlFetchApp

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

이 서비스를 사용하면 스크립트가 URL을 가져와 다른 애플리케이션과 통신하거나 웹의 다른 리소스에 액세스할 수 있습니다. 스크립트는 URL Fetch 서비스를 사용하여 HTTP 및 HTTPS 요청을 실행하고 응답을 수신할 수 있습니다. URL 가져오기 서비스는 효율성과 확장을 목적으로 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 가져오기 요청을 실행합니다.

이 기능은 HTTPS뿐만 아니라 HTTP에서도 작동합니다.

// The code below logs the HTML code of the Google home page.
var 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을 가져오도록 요청합니다.

이 기능은 HTTPS뿐만 아니라 HTTP에서도 작동합니다.

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

매개변수

이름유형설명
urlString가져올 URL입니다. URL에는 최대 2,082자(영문 기준)까지 입력할 수 있습니다.
paramsObject아래에 정의된 대로 고급 매개변수를 지정하는 선택적 자바스크립트 객체입니다.

고급 매개변수

이름유형설명
contentTypeString콘텐츠 유형 (기본값은 'application/x-www-form-urlencoded')입니다. 콘텐츠 유형의 또 다른 예는 'application/xml; charset=utf-8'입니다.
headersObject요청에 대한 HTTP 헤더의 자바스크립트 키/값 맵
methodString요청의 HTTP 메서드(get, delete, patch, post 또는 put)입니다. 기본값은 get입니다.
payloadString요청의 페이로드 (즉, POST 본문)입니다. 특정 HTTP 메서드 (예: GET)는 페이로드를 허용하지 않습니다. 문자열, 바이트 배열, blob, 자바스크립트 객체일 수 있습니다. 자바스크립트 객체는 양식 필드 이름과 값의 매핑으로 해석되며, 값은 문자열 또는 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

fetchAll(requests)

선택적 고급 매개변수를 사용하여 여러 URL을 가져오도록 여러 요청을 합니다.

이 기능은 HTTPS뿐만 아니라 HTTP에서도 작동합니다.

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

매개변수

이름유형설명
requestsObject[]아래에 정의된 요청을 지정하는 URL 또는 자바스크립트 객체의 배열입니다.

고급 매개변수

이름유형설명
urlString가져올 URL입니다. URL에는 최대 2,082자(영문 기준)까지 입력할 수 있습니다.
contentTypeString콘텐츠 유형 (기본값은 'application/x-www-form-urlencoded')입니다. 콘텐츠 유형의 또 다른 예는 'application/xml; charset=utf-8'입니다.
headersObject요청에 대한 HTTP 헤더의 자바스크립트 키/값 맵
methodString요청의 HTTP 메서드(get, delete, patch, post 또는 put)입니다. 기본값은 get입니다.
payloadString요청의 페이로드 (즉, POST 본문)입니다. 특정 HTTP 메서드 (예: GET)는 페이로드를 허용하지 않습니다. 문자열, 바이트 배열, blob, 자바스크립트 객체일 수 있습니다. 자바스크립트 객체는 양식 필드 이름과 값의 매핑으로 해석되며, 값은 문자열 또는 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.
var response = UrlFetchApp.getRequest("http://www.google.com/");
for(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아래에 정의된 대로 고급 매개변수를 지정하는 선택적 자바스크립트 객체입니다.

고급 매개변수

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

리턴

Object - 필드 이름과 값의 매핑입니다. 맵에 최소한 url, method, contentType, payload, headers 키가 있어야 합니다.

승인

이 방법을 사용하는 스크립트는 다음 범위 중 하나 이상을 승인해야 합니다.

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