$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}
);
Если запрос успешен, первый лист в исходной таблице будет продублирован. Тело ответа на запрос будет содержать данные о новом листе, такие как его идентификатор и длина измерений.