사용자를 대신하여 작동하는 API에는 일반적으로 승인이 필요하며, OAuth 프로토콜을 사용하는 경우가 많습니다. Apps Script는 프로토콜에 대한 기본 지원을 제공하지 않지만 OAuth 흐름을 실행하고 요청과 함께 사용자 인증 정보를 전송하는 데 사용할 수 있는 오픈소스 라이브러리가 있습니다.
JSON 객체로 작업하는 것은 XML로 작업하는 것과 비슷하지만 JSON 객체를 파싱하거나 인코딩하는 것이 훨씬 쉽습니다.
요청된 API가 요청에 대한 원시 JSON 응답을 반환하는 경우 HTTPResponse.getContentText() 메서드를 사용하여 JSON 문자열 응답에 액세스할 수 있습니다. 이 문자열을 가져온 후 문자열에서 JSON.parse()를 호출하여 네이티브 객체 표현을 가져오면 됩니다.
마찬가지로 요청을 위해 JavaScript 객체의 문자열 표현을 만들려면 JSON.stringify()를 사용합니다.
vardata={'entry':{'group':{'title':'Dog Skateboarding','description':'My dog gets some serious air'},'keywords':'dog, skateboard'}}varpayload=JSON.stringify(data);//MakerequesttoAPIwithpayloadafterthispoint.
API에 XML 요청을 할 때는 XmlService 메서드를 사용하여 전송할 XML을 구성합니다.
varroot=XmlService.createElement('entry').setAttribute('keywords','dog, skateboard');vargroup=XmlService.createElement('group').setAttribute('title','Dog Skateboarding');.setAttribute('description','My dog gets some serious air');root.addContent(group);vardocument=XmlService.createDocument(root);varpayload=XmlService.getPrettyFormat().format(document);//MakerequesttoAPIwithpayloadafterthispoint.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-04(UTC)"],[[["\u003cp\u003eGoogle Apps Script enables interaction with various web APIs using the \u003ccode\u003eUrlFetch\u003c/code\u003e service for direct API requests.\u003c/p\u003e\n"],["\u003cp\u003eFor user-centric APIs requiring authorization, utilize open-source libraries like OAuth1 or OAuth2 for Apps Script to manage the OAuth flow.\u003c/p\u003e\n"],["\u003cp\u003eApps Script simplifies working with JSON responses through \u003ccode\u003eJSON.parse()\u003c/code\u003e for converting raw JSON into native objects and \u003ccode\u003eJSON.stringify()\u003c/code\u003e for the reverse.\u003c/p\u003e\n"],["\u003cp\u003eHandle XML responses from APIs using \u003ccode\u003eHTTPResponse.getContentText()\u003c/code\u003e and the \u003ccode\u003eXmlService\u003c/code\u003e for parsing and constructing XML data.\u003c/p\u003e\n"]]],[],null,["Google Apps Script can interact with APIs from all over the web. This guide\nshows how to work with different types of APIs in your scripts.\n\nConnect to public APIs\n\nYou can use the [`UrlFetch`](/apps-script/reference/url-fetch) service to make\nAPI requests directly.\n\nThe following example uses the\n[GitHub API](https://developer.github.com/v3/search/#search-repositories) to\nsearch for repositories with 100 or more stars that mention \"Apps Script\".\nThis API request does not require authorization or an API key. \n\n var query = '\"Apps Script\" stars:\"\u003e=100\"';\n var url = 'https://api.github.com/search/repositories'\n + '?sort=stars'\n + '&q=' + encodeURIComponent(query);\n\n var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});\n Logger.log(response);\n\nMake requests to services with OAuth\n\nAPIs that act on behalf of a user usually require authorization, often using the\n[OAuth protocol](http://oauth.net/). Apps Script doesn't provide built-in\nsupport for the protocol, but there are open source libraries you can use to\nperform the OAuth flow and send the credentials with your requests:\n\n- [OAuth1 for Apps Script](https://github.com/googlesamples/apps-script-oauth1): Compatible with OAuth 1.0 and 1.0a.\n- [OAuth2 for Apps Script](https://github.com/googlesamples/apps-script-oauth2): Compatible with OAuth2.\n\nWork with JSON\n\nWorking with JSON objects is similar to working with XML, except that parsing or\nencoding a JSON object is much easier.\n\nIf the API being requested returns a raw JSON response for a request, the JSON\nstring response can be accessed using the method\n[`HTTPResponse.getContentText()`](/apps-script/reference/url-fetch/http-response#getContentText()).\nOnce this string is retrieved, simply call `JSON.parse()` on the string to get a\nnative object representation. \n\n // Make request to API and get response before this point.\n var json = response.getContentText();\n var data = JSON.parse(json);\n Logger.log(data.title);\n\nLikewise, to make a string representation of a JavaScript object in order to\nmake a request, use `JSON.stringify()`. \n\n var data = {\n 'entry': {\n 'group': {\n 'title': 'Dog Skateboarding',\n 'description': 'My dog gets some serious air'\n },\n 'keywords': 'dog, skateboard'\n }\n }\n var payload = JSON.stringify(data);\n // Make request to API with payload after this point.\n\nParse XML\n\nIf an external API returns a raw XML response for a request, you can access the\nXML response using the method\n[`HTTPResponse.getContentText()`](/apps-script/reference/url-fetch/http-response#getContentText()). \n\n // Make request to API and get response before this point.\n var xml = response.getContentText();\n var doc = XmlService.parse(xml);\n\nWhen making XML requests to an API, construct the XML to send by using\nthe [`XmlService`](/apps-script/reference/xml-service/xml-service) methods. \n\n var root = XmlService.createElement('entry')\n .setAttribute('keywords', 'dog, skateboard');\n var group = XmlService.createElement('group')\n .setAttribute('title', 'Dog Skateboarding');\n .setAttribute('description', 'My dog gets some serious air');\n root.addContent(group);\n var document = XmlService.createDocument(root);\n var payload = XmlService.getPrettyFormat().format(document);\n // Make request to API with payload after this point."]]