Перейти к основному содержимому

$integration.customRequest

Продвинутая возможность

Метод позволяет выполнить произвольный запрос к любому методу, который поддерживается на стороне API интеграции, подключенной к проекту.

подсказка
Метод функционально схож с методом $http.query для выполнения HTTP-запросов. Используйте вместо него $integration.customRequest для обращения к API, имеющим отдельную интеграцию на стороне платформы.

Синтаксис​

Принимаемые аргументы​

Метод принимает 5 обязательных аргументов.

АргументОписаниеТип
integrationIdИдентификатор интеграцииСтрока
urlАдрес, по которому вызывается методСтрока
methodHTTP-метод запросаСтрока
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}
);

Если запрос успешен, первый лист в исходной таблице будет продублирован. Тело ответа на запрос будет содержать данные о новом листе, такие как его идентификатор и длина измерений.