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.