$integration.customRequest
Продвинутая возможность
Метод позволяет выполнить произвольный запрос к любому методу, который поддерживается на стороне API интеграции, подключенной к проекту.
$http.query для выполнения HTTP-запросов.
Используйте вместо него $integration.customRequest для обращения к API, имеющим отдельную интеграцию на стороне платформы.Синтаксис
Принимаемые аргументы
Метод принимает 5 обязательных аргументов.
| Аргумент | Описание | Тип |
|---|---|---|
integrationId | Идентификатор интеграции | Строка |
url | Адрес, по которому вызывается метод | Строка |
method | HTTP-метод запроса | Строка |
headers | Заголовки запроса | Объект или null |
body | Тело запроса | Объект или null |
Возвращаемое значение
Метод возвращает объект со следующими полями.
| Поле | Описание | Тип |
|---|---|---|
statusCode | Код состояния | Число |
responseHeaders | Заголовки ответа | Объект |
responseBody | Тело ответа | Строка |
Примеры использования
Рассмотрим примеры того, как вызывать при помощи $integration.customRequest ме тоды API для работы с таблицами Google.
В примерах предположим, что идентификатор интеграции и таблицы сохранены в переменных integrationId и spreadsheetId соответственно.
Чтение данных из ячеек
Для чтения данных воспользуемся методом spreadsheets.values.get. Получим данные из ячейки A1 на первом листе:
$integration.customRequest(
integrationId,
"https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheetId + "/values/A1",
"GET",
null,
null
);
Если первый лист называется Sheet1, а ячейка содержит значение Привет, метод вернет следующий объект:
{
"statusCode": 200,
"responseHeaders": {
"Content-Type": "application/json; charset=UTF-8",
"Vary": "Origin",
// Другие HTTP-заголовки опущены
},
"responseBody": "{\n \"range\": \"Sheet1!A1\",\n \"majorDimension\": \"ROWS\",\n \"values\": [\n [\n \"Привет\"\n ]\n ]\n}\n"
}
responseBody содержит тело ответа от API в виде строки.
Не забудьте использовать метод JSON.parse, чтобы преобразовать его в объект и извлечь необходимые данные.Запись данных в ячейки
Воспользуемся методом spreadsheets.values.update, чтобы обновить существующие данные в ячейках таблицы.
$integration.customRequest(
integrationId,
"https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheetId + "/values/A1?valueInputOption=RAW",
"PUT",
null,
{values: [["Пока"]]}
);
При успешном вызове метода значение ячейки A1 будет заменено на Пока. В теле ответа на запрос будет содержаться диапазон обновленных ячеек и их численные показатели.
Копирование листов таблицы
При помощи метода spreadsheets.sheets.copyTo скопируем первый лист таблицы (он имеет идентификатор 0).
Для примера скопируем его в ту же таблицу, указав в поле destinationSpreadsheetId тела запроса тот же идентификатор таблицы.
$integration.customRequest(
integrationId,
"https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheetId + "/sheets/0:copyTo",
"POST",
{"Content-Type": "application/json", "Connection": "Keep-Alive"},
{destinationSpreadsheetId: spreadsheetId}
);
Если запрос успешен, первый лист в исходной таблице будет продублирован. Тело ответа на запрос будет содержать данные о новом листе, такие как его идентификатор и длина измерений.