Задать вопрос
AronTito
@AronTito
разработчик-любитель web приложений и сайтов.

Как получить весь список звонков из Битрикс24 (телефония) REST API?

Всем привет.
Задачка на первый взгляд простая. Нужно получить весь список звонков за день. Использую РНР
$webhook = 'https://test.bitrix24.ua/rest/1/.../voximplant.statistic.get'; // 
$data = http_build_query([
		// array code...
		'SORT' => 'ID',
		'ORDER' => 'DESC',
		'filter' => [
			'>CALL_START_DATE' => date('Y').'-'.date('m').'-'.date('d'),
			// 'CALL_FAILED_CODE' => [304],
		]
	]);
$curl = curl_init();
curl_setopt_array($curl, [
	// array code...
	CURLOPT_SSL_VERIFYPEER => 0,
	CURLOPT_POST => 1,
	CURLOPT_HEADER => 0,
	CURLOPT_RETURNTRANSFER => 1,
	CURLOPT_URL => $webhook,
	CURLOPT_POSTFIELDS => data(),
]
);
$result = curl_exec($curl);
$result = json_decode($result, 1);

echo '<pre>';
print_r($result['result']);
echo '</pre>';

Но как известно Битрикс выдает только 50шт записей. Как получить полный список?
P.S. - А может подскажете, кто знает. Основная задача: - получить список звонков с кодом 304 (304 -пропущенный вызов ), НО! - если с момента даты пропущенного вызова, появилась запись с этим номером, но уже с кодом 200, то тогда его не показывать. Возможно это можно отправить в запрос Битрикс и сразу получить результат?
// пример массива
$array = [
	'result' => [
		/*
			Принятый звонок (перезвонили) в 18:00:00
			номер: 08001234567
			код: 200
			! Значит запись с ключем 20 не показывать
		*/
		0 => [
			'ID' => '100',
			'USER_NUMBER' => '08001234567',
			'CODE' => '200',
			'DATE' => '2020.03.05Т18:00:00+03:00'
		],
		/*
			Пропущенный звонок в 10:00:00
			номер: 08001234567
			код: 304
		*/
		20 => [
			'ID' => '80',
			'USER_NUMBER' => '08001234567',
			'CODE' => '304',
			'DATE' => '2020.03.05Т10:00:00+03:00'
		],
		/*
			Пропущенный звонок в 08:00:00
			номер: 08000000777
			код: 304
			! Данный звонок показать, так-как на него еще
			  нет записи с кодом 200.
		*/
		45 => [
			'ID' => '60',
			'USER_NUMBER' => '08000000777',
			'CODE' => '304',
			'DATE' => '2020.03.05Т08:00:00+03:00'
		],
	]
];
  • Вопрос задан
  • 3123 просмотра
Подписаться 3 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Dee3
@Dee3
Нужно использовать batch метод, смотрите в документации по этому слову.
Ответ написан
https://dev.1c-bitrix.ru/rest_help/general/lists.php

При вызове списочных методов REST возвращает дополнительные значения в ответе:

Для получения следующего пакета элементов, необходимо выполнить тот же самый запрос, указав дополнительный параметр start со значением, пришедшем в параметре next ответа.


https://dev.1c-bitrix.ru/rest_help/general/batch.php

В некоторых случаях возникает необходимость отправить несколько запросов подряд. Для оптимизации процесса можно использовать пакетное выполнение запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽