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 가져오기를 요청합니다.

이는 HTTP는 물론 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());

매개변수

이름유형설명
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.
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입니다.
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.
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입니다.
escapingBooleanURL에 false 예약된 문자가 이스케이프되지 않은 경우. 기본값은 true입니다.

리턴

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

승인

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

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