bitrix24-php-sdk icon indicating copy to clipboard operation
bitrix24-php-sdk copied to clipboard

Получение данных batch-методом через входящий вебхук

Open SergeyArc opened this issue 2 years ago • 0 comments

UPD: Актуально именно для tasks.task.list. Для task.item.list отработает нормально Обращение к входящему вебхуку, например https://b24-12cgoe.bitrix24.ru/rest/1/j312zm18fnzby0ls/tasks.task.list/ Возвращает ответ:

{
  "result": {
    "tasks": [...]
  },
  "total": 176,
  "time": {...}
}

при этом в SDK ожидается ответ вида:

{
  "result": {
    [...]
  },
  "total": 176,
  "time": {...}
}

Из-за чего при проходе по результатам массива возникают ошибки, например:

foreach ($firstResultPage->getResponseData()->getResult() as $cnt => $listElement) {
   $lastElementIdInFirstPage = (int)$listElement['ID'];
}

$listElement['ID'] в данном случае null, так как $listElement хранит массив вида:

Array
(
    [0] => Array
        (
            [id] => 1

обработка должна быть:

$lastElem = end($listElement);
$lastElem['id'];

Также не учитывается регистр ключей массива. Везде используется обращение в верхнем регистре ((int)$listElement['ID'];) Но в результатах ключи возвращаются и в нижнем регистре:

Array
(
    [0] => Array
        (
            [id] => 1

Необходимо приводит к единому регистру: $lastElem = array_change_key_case($lastElem, CASE_UPPER);

SergeyArc avatar Nov 03 '23 07:11 SergeyArc