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

$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}
);

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