http.sendRequestОтправляет HTTP-запрос на указанный URL.
Сигнатура: http.sendRequest(url string, method string, body any = nil, headers Map = nil) Response
Аргументы:
url — URL-адрес, на который будет отправлен запрос.method — HTTP-метод. Допустимые значения: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS.body — тело запроса. Может быть скалярным значением, списком или ассоциативным массивом.headers — HTTP-заголовки запроса. По умолчанию используется заголовок Content-Type: application/json.Возвращаемое значение: Объект HTTP-ответа (Response).
Пример использования:
// Выполняем запрос на получение списка юзеров
$response = http.sendRequest("https://iam.twin24.ai/api/v1/users", "GET", {"limit": 15, "offset": 5}, {"Authorization": "Bearer authToken"})
// Извлекаем информацию о запросе
$statusCode = $response.statusCode
$body = $response.body
$headers = $response.headers
$error = $response.error
Для типов содержимого json или xml, если значение body является списком или ассоциативным массивом, оно автоматически конвертируется в строку соответствующего формата.
То же самое происходит и с телом ответа: если содержимое ответа в формате json или xml, тело автоматически преобразуется в список или ассоциативный массив.
// Тело JSON-запроса в виде структур данных BPL
$requestBody = [
{
"param1": "value1",
"param2": 123,
},
{
"param3": ["a", "b", "c"],
},
]
// Это тело автоматически будет преобразовано в строку
$response = http.sendRequest("http://some.url", "POST", $requestBody, {"Content-Type": "application/json"})
// Если тип содержимого ответа json, то тело будет автоматически преобразовано в структуру BPL
$body = $response.body
// Тело XML-запроса в виде структур данных BPL
$requestBody = [
{
"tag": "xml",
"value": [
{
"tag": "head",
"value": [
{
"tag": "title",
"value": "chapter 2",
},
],
},
{
"tag": "body",
"value": [
{
"tag": "div",
"attributes": {
"class": "color",
"style": "display:block;",
},
"value": [
"Some",
{
"tag": "br",
},
"text",
],
},
{
"tag": "div",
"attributes": {
"id": "a12",
},
"value": [
{
"tag": "i",
"value": "Another text",
},
{
"tag": "span",
"expand": true, // если true, то тег с пустым значением будет иметь закрывающий тег
},
],
},
],
},
],
},
]
// Это тело автоматически будет преобразовано в строку
$response = http.sendRequest("http://some.url", "POST", $requestBody, {"Content-Type": "text/xml"})
// Если тип содержимого ответа xml, то тело будет автоматически преобразовано в структуру BPL
$body = $response.body
http.requestФормирует новый объект HTTP-запроса.
Сигнатура: http.request(url string = "", method string = "POST", body any = nil) Request
Аргументы:
url — строка URL.method — название HTTP-метода.body — содержимое тела запроса.Возвращаемое значение: Объект, содержащий информацию о HTTP-запросе.
Пример использования:
$response = http.request("https://some.url", "POST", {"param1": 123, "param2": true}).
headers({"Content-Type": "application/json"}).
timeout(300).
send()
twin.setApiKeysУстанавливает ключи авторизации для запросов к TWIN API. Сохраняет значения в системные переменные @apiKey и @apiSecretKey.
Сигнатура: twin.setApiKeys(apiKey str, apiSecretKey str) void
Аргументы:
apiKey — ключ доступа (access token).apiSecretKey — ключ обновления (refresh token).Результат: Ключи сохраняются в системные переменные и будут автоматически использоваться при выполнении запросов через twin.sendRequest.
Пример использования:
twin.setApiKeys("abc123", "refresh456")
twin.requestФормирует объект HTTP-запроса для обращения к TWIN API. Эквивалент функции http.request.
Сигнатура: twin.request(url string = "", method string = "POST", body any = nil) Request
Аргументы:
url — адрес запроса.method — HTTP-метод, например GET, POST, PUT, DELETE.body — тело запроса. Может быть строкой, словорем или списком.Результат: Объект запроса, который можно дополнительно настроить (заголовки, таймаут и др.) и передать в twin.sendRequest.
Пример использования:
$request = twin.request("https://api.twin24.ai/v1/users", "GET").
headers({"Authorization": "Bearer token"}).
timeout(300)
$response = twin.sendRequest($request)
twin.sendRequestОтправляет HTTP-запрос к TWIN API. Эквивалент функции http.sendRequest.
Сигнатура: twin.sendRequest(url string, method string, body any = nil, headers map = nil) Response
Аргументы:
url — адрес запроса.method — HTTP-метод. Допустимые значения: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS.body — содержимое запроса. Поддерживаются скаляры, списки и словари. Для json и xml тело автоматически сериализуется.headers — словарь HTTP-заголовков. По умолчанию используется Content-Type: application/json.Результат: Объект ответа Response, содержащий:
statusCode — код ответа.body — содержимое ответа (автоматически преобразуется при json/xml).headers — заголовки ответа.error — сообщение об ошибке (если есть).Пример использования:
$response = twin.sendRequest("https://api.twin24.ai/v1/users", "GET", {"limit": 15}, {
"Authorization": "Bearer token"
})
$status = $response.statusCode
$users = $response.body
Для содержимого типа json или xml:
Если тело запроса — это структура (список или словарь), оно будет автоматически преобразовано в строку нужного формата. Ответ также преобразуется обратно в структуру данных BPL.