외부 API

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Google Apps Script는 웹에서 제공되는 API와 상호작용할 수 있습니다. 이 가이드에서는 스크립트에서 다양한 유형의 API를 사용하는 방법을 설명합니다.

공개 API에 연결

UrlFetch 서비스를 사용하여 API 요청을 직접 할 수 있습니다.

다음 예에서는 GitHub API를 사용하여 'Apps Script'를 언급하는 별표가 100개 이상인 저장소를 검색합니다. 이 API 요청에는 승인이나 API 키가 필요하지 않습니다.

var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
  + '?sort=stars'
  + '&q=' + encodeURIComponent(query);

var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);

OAuth로 서비스에 요청

사용자를 대신하여 작동하는 API에는 일반적으로 승인이 필요하며 일반적으로 OAuth 프로토콜이 사용됩니다. Apps Script는 프로토콜에 대한 지원을 기본적으로 제공하지 않지만 OAuth 흐름을 실행하고 사용자 인증 정보를 요청과 함께 전송하는 데 사용할 수 있는 오픈소스 라이브러리가 있습니다.

JSON 작업

JSON 객체를 사용하는 것은 JSON 객체를 파싱하거나 인코딩하는 것이 훨씬 쉬우다는 점을 제외하면 XML 작업 자체와 유사합니다.

요청 중인 API가 요청에 대한 원시 JSON 응답을 반환하면 HTTPResponse.getContentText() 메서드를 사용하여 JSON 문자열 응답에 액세스할 수 있습니다. 이 문자열을 가져오면 문자열에서 JSON.parse()를 호출하여 네이티브 객체 표현을 가져올 수 있습니다.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

마찬가지로 자바스크립트 객체의 문자열을 표현하려면 JSON.stringify()을 사용하세요.

var data = {
  'entry': {
    'group': {
      'title': 'Dog Skateboarding',
      'description': 'My dog gets some serious air'
    },
    'keywords': 'dog, skateboard'
  }
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.

XML 파싱

외부 API가 요청에 대한 원시 XML 응답을 반환하면 HTTPResponse.getContentText() 메서드를 사용하여 XML 응답에 액세스할 수 있습니다.

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

API에 XML 요청을 보낼 때는 XmlService 메서드를 사용하여 전송할 XML을 구성합니다.

var root = XmlService.createElement('entry')
    .setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
    .setAttribute('title', 'Dog Skateboarding');
    .setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.