Внешние API

Google Apps Script может взаимодействовать с API со всего Интернета. В этом руководстве показано, как работать с различными типами API в ваших скриптах.

Подключайтесь к общедоступным API

Вы можете использовать службу UrlFetch для прямого выполнения запросов API.

В следующем примере API GitHub используется для поиска репозиториев со 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 аналогична работе с XML, за исключением того, что синтаксический анализ или кодирование объекта JSON намного проще.

Если запрашиваемый API возвращает необработанный ответ JSON на запрос, доступ к строковому ответу JSON можно получить с помощью метода HTTPResponse.getContentText() . Как только эта строка будет получена, просто вызовите 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);

Аналогично, чтобы создать строковое представление объекта JavaScript для выполнения запроса, используйте 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 на запрос, вы можете получить доступ к ответу XML с помощью метода HTTPResponse.getContentText() .

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

При отправке XML-запросов к API создайте XML для отправки с помощью методов XmlService .

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.
,

Google Apps Script может взаимодействовать с API со всего Интернета. В этом руководстве показано, как работать с различными типами API в ваших скриптах.

Подключайтесь к общедоступным API

Вы можете использовать службу UrlFetch для прямого выполнения запросов API.

В следующем примере API GitHub используется для поиска репозиториев со 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 аналогична работе с XML, за исключением того, что синтаксический анализ или кодирование объекта JSON намного проще.

Если запрашиваемый API возвращает необработанный ответ JSON на запрос, доступ к строковому ответу JSON можно получить с помощью метода HTTPResponse.getContentText() . Как только эта строка будет получена, просто вызовите 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);

Аналогично, чтобы создать строковое представление объекта JavaScript для выполнения запроса, используйте 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 на запрос, вы можете получить доступ к ответу XML с помощью метода HTTPResponse.getContentText() .

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

При отправке XML-запросов к API создайте XML для отправки с помощью методов XmlService .

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.