andrey-tech / bitrix24-api-php Goto Github PK
View Code? Open in Web Editor NEWОбертка на PHP7+ для работы с REST API Битрикс24 с использованием механизма входящих вебхуков, троттлингом запросов к API и логированием в файл.
License: MIT License
Обертка на PHP7+ для работы с REST API Битрикс24 с использованием механизма входящих вебхуков, троттлингом запросов к API и логированием в файл.
License: MIT License
Добрый день.
Получаю список лидов за вчерашний день методом fetchLeadList.
В ответе возвращается не более 50 лидов. Это заложено вашей библиотекой или это ограничение метода API Битрикса?
Можно ли его обойти?
Не нашел нигде свойства next или подобного.
Добрый день.
Через вашу библиотеку получаю лиды из битрикса для сведения статистики.
Возникла проблема со временем. Очень долго получаю ответ, если делаю выборку за срок больше одного дня.
Например при запросе:
$generator = $bx24->fetchLeadList(array('>DATE_CREATE' => '2022-02-01T00:00:00', '<DATE_CREATE' => '2022-02-04T23:59:59'),array('TITLE','STATUS_ID'),array('DATE_CREATE'));
Время ответа занимает 1,5-2 минуты и в ответе лежит 160 лидов.
Еще раз добрый день.
Пытаюсь получить список элементов справочника Источники (находится в лидах, существует по умолчанию - cid SOURCE_ID).
Пробовал по-разному, последний вариант вот такой. Но в ответ ничего.
public function getBitrixReferences($reference)
{
try {
$webhookURL = 'https://***/rest/20/97bcowzs8vinxzye/';
$bx24 = new Bitrix24API($webhookURL);
$bx24->http->debugLevel = HTTP::DEBUG_NONE;
$bx24->http->throttle = 0.5;
$bx24->http->curlTimeout = 30;
$filter = [
'ENTITY_ID' => 'SOURCE',
];
$generator = $bx24->fetchList('crm.status.list',array(array('filter' => $filter)));
$response = array();
foreach ($generator as $refs) {
foreach ($refs as $ref) {
array_push($response,$ref);
}
}
} catch (Bitrix24APIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}
return $response;
}
Не направите? Что не так?
Добрый день.
Возможно ли как-то оптимизировать загрузку больших файлов на диск? У меня обучающие видео на примонтированном диске, которые нужно копировать в папку в битрикс, средним размером по 1,5 Гб.
Приветствую, пробовал по разному добавить телефон и просто передать телефон в поле phone и массив:
$contactId = $bx24->addContact([
'NAME' => 'Иван',
'SECOND_NAME' => 'Васильевич',
'LAST_NAME' => 'Петров',
'HAS_PHONE'=>'Y',
'PHONE'=> ["VALUE"=> "555888", "VALUE_TYPE" => "WORK"]
]);
и массив в массиве: [["VALUE"=> "555888", "VALUE_TYPE" => "WORK"]]
, никак не выходит, так как же правильно передавать телефон контакту?
Здравствуйте, как организовать поиск по массиву значений?
https://dev.1c-bitrix.ru/rest_help/crm/auxiliary/duplicates/crm_duplicate_findbycomm.php
В оф. документации есть такой метод, но позволяет по 20 элементов, что такое себе...
Может можно как то поиск организовать в батчи на = в фильтре? Или как лучше искать? Возможно ли как то проще с этой библиотекой?
Спасибо!
Можно с Вами как-то связаться, по поводу использования библиотеки Bitrix24 API или консультации по улучшению своего скрипта?
Добрый день.
Пытаюсь использовать Вашу библиотеку для формирования статистики получения лидов и сделок.
Застопорился практически в самом начале.
Пытаюсь получить список лидов, отфильтровав их по дате.
try {
$webhookURL = 'Webhook URL';
$bx24 = new Bitrix24API($webhookURL);
// Устанавливаем максимальный уровень вывода отладочных сообщений в STDOUT
$bx24->http->debugLevel = HTTP::DEBUG_URL | HTTP::DEBUG_HEADERS | HTTP::DEBUG_CONTENT;
// Устанавливаем троттлинг запросов на уровне не более 1 запроса в 2 секунды
$bx24->http->throttle = 0.5;
// Устанавливаем таймаут обмена данными в 30 секунд
$bx24->http->curlTimeout = 30;
// Получаем компанию по ID
$filter = array();
$filter[htmlentities('>DATE_CREATE')] = date('Y-m-d\T00:00:00');
$filter[htmlentities('<DATE_CREATE')] = date('Y-m-d\T23:59:59');
$generator = $bx24->fetchLeadList($filter);
foreach ($generator as $leads) {
foreach($leads as $lead) {
print_r($lead);
}
}
} catch (Bitrix24APIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}
В итоге получаю в ответе все лиды нашей CRM. Ничего не могу понять, что не так.
Добрый день!
Спасибо за нормальную API к Битрикс24!
Есть и маленькая проблемка: При установке с помощью композера появляется предупреждение:
Warning: Ambiguous class resolution, "App\AppException" was found 2x: in "D:/L/OneDrive/Dev/MyWebSites/Profadmin/b24api.profadmin.ru.loc/vendor/andrey-tech/http-client-php/src/App/AppException.php" and "D:/L/OneDrive/Dev/MyWebSites/Profadmin/b24api.profadmin.ru.loc/vendor/andrey-tech/debug-logger-php/src/App\AppException.php", the first will be used.
Я так понимаю, для работы оно мешать не будет, но лучше бы пофиксить в будущих релизах.
Еще вопрос - планируется ли добавление методов для работы с лидами? Очень востребовано...
Хочу поблагодарить за отличную проделанную работу. Документация и реализация на высшем уровнем!!!
Очень не хватает реквизитов,например создал компании и хочу прикрепить ИНН. Будет ли дорабатываться решение?
Спасибо Вам за труды! =)
Добрый день.
Для обновления контактов использую метод getContactsByPhone.
Контактов много и запросов приходится делать много. Но после 300 запроса вылетаю в ошибку
HTTP: Ошибка cURL #77 (https://bitrix.autocity-finance.ru/rest/20/**/crm.contact.list.json):
аналогично тикету по js обертке
Добрый день.
с модулем CRM и его методами все понятно - все работает...
но модуль этот в свою очередь 'собран/построен' из инфоблоков Б24 которые имеют свою структуру и свои методы - отличные от CRM...
в частности:
судя по всему (по состоянию на 2023 год) Б24 оптимизирует инфоблоки добавляя новые методы..., - для того же каталога пошла градация на
catalog.product.sku.list
catalog.product.offer.list
catalog.product.service.list
с оптимизацией запросов
...
развиваются короче куда-то
Просьба: - добавьте пожалуйста в PHP обертку функционал позволяющий работать с данными методами (не обязательно адресный в плане для каждого метода/сущности конкретный, можно просто в 'ядро'... не знаю как лучше)
ps
хотя если смотреть в целом:
1- модуль CRM это только частный случай в общей структуре данных Б24...
2- много людей уже используют Вашу обертку...
как поступить - переделать все или 'пофиксить' часть... - не знаю )))
Спасибо
Добрый день.
Получаю с Вашей библиотекой список элементов из нужной категории. Полный список без проблем получаю.
Не понимаю, как получить список с набором фильтров (из блока поиска в списке).
Сейчас вывожу в бэк массив с элементами поиска:
Array
(
[0] => stdClass Object
(
[attribute] => NAME
[value] => рог
)
)
Но не могу понять, как его добавить в общий сбор элементов:
$webhookURL = 'https://bitrix.autocity-crm.ru/rest/20/***/';
$bx24 = new Bitrix24API($webhookURL);
$bx24->http->debugLevel = HTTP::DEBUG_NONE;
$bx24->http->throttle = 0.5;
$bx24->http->curlTimeout = 30;
$generator = $bx24->getList(
'lists.element.get',
[ 'IBLOCK_ID' => 46, 'IBLOCK_TYPE_ID' => 'bitrix_processes' ]
);
$response = array();
$total = 0;
foreach ($generator as $els) {
foreach ($els as $el) {
$obj = (object)array();
$obj->name = $el['NAME'];
$obj->sum = $el['PROPERTY_273'];
$total += reset($obj->sum);
array_push($response,$obj);
}
}
$response['total'] = $total;
} catch (Bitrix24APIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}
Не поможете разобраться?
Добрый день.
Пробую методом getContactsByPhone получить контакт,
но возвращается пустой массив:
try {
$webhookURL = 'https://***/rest/20/***/';
$bx24 = new Bitrix24API($webhookURL);
$contacts = $bx24->getContactsByPhone($clientPhone,['ID','NAME']);
print_r($contacts);
} catch (Bitrix24APIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}
Проверяю тот же номер в Битриксе, есть клиент.
Добрый день!
При чистой первоначальной установке версии 1.5 - не находит пакет:
>composer require andrey-tech/bitrix24-api-php:"^1.5"
[InvalidArgumentException]
Could not find package andrey-tech/bitrix24-api-php in a version matching ^1.5
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.