Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


note
Message Box
iconnone
titleПримечаниеНа этой странице
typegeneric

Оглавление


Примечание

Важно - Для тестирования сценариев, содержащих BPL-операции, необходимо использовать веб-виджет или интеграцию с каким-либо мессенджером, либо входящую телефонию, так как данные операции не работают в тестовом чате внутри редактора.

...

Как создать тестовый виджет можно узнать в статье: Создание тестового виджета


Вместо использования блока запроса к серверу, можно оформить запрос с помощью BPL-операций в блоке арифметики. Это позволяет использовать расширенный список HTTP-методов запроса, и более гибко работать с ответом сервера, используя другие BPL-операции.

Описание метода

http.requestsendRequest(url string, method string, params Collection, headers Map) MapResponse

Назначение: отправляет HTTP запрос на указанный URL.  Аргументы:
1. url - URL адрес на который будет оправлен запрос.
2. method - HTTP метод. Допустимые значения: GET, POST, PUT, DELETE, PATCH, HEAD и OPTIONS.
3. params - параметры запроса. Могут быть представлены как списком так и ассоциативным массивом.
4. headers - HTTP заголовки запроса. По умолчанию устанавливается заголовок Content-Type: application/json.

Возвращаемое значение: HTTP ответ объект HTTP ответа на запрос в виде ассоциативного массива со следующими  следующими ключами:   statusCode - HTTP код ответа, body - тело ответа (преобразованное в соответствии с заголовком Content-Type),  headers - HTTP заголовки ответа в виде ассоциативного массива, exception - текст ошибки или nil если запрос прошёл без ошибок.

...

Блок кода
languagesql
themeDJango
$url = str.join(["http://rosreestr.subnets.ru/?get=num&format=json&num=", {phone$phone_number}], ""); //соединяем url запроса и значение переменной через пустой символ
$response = http.requestsendRequest($url), GET)

В данном примере в методе http.request передается только два параметра, которые являются обязательными в любом запросе - url и метод запроса, так как у данного запроса нет тела и дополнительных заголовков.

Пример

...

отправки json-файла в качестве тела запроса

Для того чтобы отправить json-файл в качестве тела запроса, необходимо присвоить новой переменной (в данном примере это переменная $json) содержимое нужного файла, а затем отправить созданную переменную в качестве тела запроса:

Блок кода
languagesql
themeDJango
$json = {"instances":[{"text": "Режим нерабочих дней, по заключениям экспертов, может прервать цепочку заражений коронавирусом, заявил пресс-секретарь президента России Дмитрий Песков."}]};

$response = http.sendRequest("https://api.aicloud.sbercloud.ru/public/v2/rewriter/predict", 
"POST", 
$json, 
{"accept": "application/json", "Content-Type": "application/json"})

Пример запроса с авторизацией с телом запроса

...

В качестве примера приведен запрос к API Twin на получение списка пользователей, зарегистрированных в одном в личном кабинете.

Блок кода
languagesql
themeDJango
$response = http.requestsendRequest("https://iam.twin24.ai/api/v1/users",
"GET",
{"limit": 1, "offset": 3},
{"Authorization": "Bearer ВАШ_ТОКЕН"})

В качестве первого аргумента метода передаем ссылку на запрос;
Второго аргумента - тип запроса, в данном случае GET;
Третьего аргумента - передаем json тело запроса;
Четвертого аргумента - дополнительные заголовки запроса, в данном случае заголовок Authorization, значением которого является тип авторизации (Bearer) и ключ авторизации (ВАШ_ТОКЕН).
Вместо ВАШ_ТОКЕН в данном запросе необходимо подставить токен идентификации из личного кабинета, для того чтобы запрос был работоспособным.

Пример запроса с авторизацией

...

без тела запроса

В качестве примера приведен запрос к API Twin на получение списка пользователей, зарегистрированных в одном в личном кабинете.

Блок кода
languagesql
themeDJango
$response = http.requestsendRequest("https://iam.twin24.ai/api/v1/users",
"GET",
{},
{"Authorization": "Bearer ВАШ_ТОКЕН"})

...

Блок кода
languagesql
themeDJango
$body = $response.body // Получаем тело ответа сервера
$count = $response$body.get("count") // Получаем значение конкретного поля из тела ответа сервера

Для получения вложенного элемента потребуется использовать цепочку операций .get() Получение поля email из примера ответа сервера, и сохранение в переменную {email_address}:

Блок кода
languagesql
themeDJango
$body = $response.body
$email_address = $response$body.get("items").get("0").get("email")

...

Блок кода
languagesql
themeDJango
$body = $response.body
$role_name = $response$body.get("items").get("0").get("roles").get("0").get("name")

...