55Обертка на PHP7+ для работы с [ REST API Битрикс24] ( https://dev.1c-bitrix.ru/rest_help/ ) с использованием механизма [ входящих вебхуков] ( https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=99&LESSON_ID=8581 ) ,
66троттлингом запросов к API и логированием в файл.
77
8- ** Документация находится в процессе разработки.**
9-
108# Содержание
119
1210<!-- MarkdownTOC levels="1,2,3,4,5,6" autoanchor="true" autolink="true" -->
4543
4644Для работы с REST API Битрикс24 используется класс ` \App\Bitrix24\Bitrix24API ` .
4745При возникновении ошибок выбрасывается исключение с объектом класса ` \App\Bitrix24\Bitrix24APIException ` .
48- В настоящее время класс содержит методы для работы со следующими сущностями Битрикс24:
46+ В настоящее в классе реализованы методы для работы со следующими сущностями Битрикс24:
4947
5048- [ Сделки] ( #%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8 )
5149- [ Контакты] ( #%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B0%D0%BC%D0%B8 )
130128+ ` $dealId ` - ID сделки;
131129+ ` $dealIds ` - массив ID сделок;
132130+ ` $with ` - имена связанных сущностей, возвращаемых вместе со сделкой;
133- * ` CONTACTS ` - контакты;
134- * ` PRODUCTS ` - товарные позиции;
131+ * ` CONTACTS ` - контакты (возвращаются в виде массива в одноименном поле) ;
132+ * ` PRODUCTS ` - товарные позиции (возвращаются в виде массива в одноименном поле) ;
135133- ` $fields ` - набор полей сделки;
136134- ` $params ` - набор параметров сделки;
137135- ` $filter ` - параметры фильтрации;
@@ -211,10 +209,10 @@ try {
211209 ]
212210 ]
213211 ]);
214- print_r($ids );
212+ print_r($dealIds );
215213
216214 // Пакетно удаляем сделки
217- $bx24->deleteDeals($dealIds);
215+ $bx24->deleteDeals($dealIds);
218216
219217} catch (\App\Bitrix24\Bitrix24APIException | \App\AppException $e) {
220218 printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
@@ -226,13 +224,188 @@ try {
226224
227225Методы для работы с контактами находятся в трейте ` \App\Bitrix24\Contact ` :
228226
227+ - ` getContact($contactId, array $with = []) :array ` Возвращает контакт по его ID.
228+ - ` addContact(array $fields = [], array $params = []) :int ` Добавляет контакт и возвращает его ID.
229+ - ` updateContact($contactId, array $fields = [], array $params = []) :int ` Обновляет контакт и возвращает его ID.
230+ - ` deleteContact($contactId) :int ` Удаляет контакт и возвращает его ID.
231+ - ` getContactList(array $filter = [], array $select = [], array $order = []) :\Generator `
232+ Загружает все контакты с возможностью фильтрации, сортировки и выборки полей.
233+ - ` fetchContactList(array $filter = [], array $select = [], array $order = []) :\Generator `
234+ Загружает все контакты с возможностью фильтрации, сортировки и выборки полей.
235+ Реализует [ быстрый метод] ( https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php ) загрузки при работе с большими объемами данных.
236+ - ` addContacts(array $contacts = [], array $params = []) :array ` Пакетно добавляет контакты.
237+ - ` updateContacts(array $contacts = [], array $params = []) :array ` Пакетно обновляет контакты.
238+ - ` deleteContacts(array $contactIds = []) :array ` Пакетно удаляет контакты.
239+ - ` getContactCompanyItems($contactId) :array ` Возвращает компании, связанные с контактом по ID.
240+ - ` setContactCompanyItems($contactId, array $companies) :array ` Устанавливает компании, связанные с контактом по ID.
241+ - ` getContactFields() :array ` Возвращает описание полей контакта.
242+
243+ Параметры методов:
244+
245+ + ` $contaxctId ` - ID контакта;
246+ + ` $contactIds ` - массив ID сделок;
247+ + ` $with ` - имена связанных сущностей, возвращаемых вместе с контактом:
248+ * ` COMPANIES ` - компании (возвращаются в виде массива в одноименном поле);
249+ - ` $fields ` - набор полей сделки;
250+ - ` $params ` - набор параметров сделки;
251+ - ` $filter ` - параметры фильтрации;
252+ - ` $order ` - параметры сортировки;
253+ - ` $select ` - параметры выборки полей;
254+ - ` $contacts ` - массив параметров контактов;
255+ - ` $companies ` - массив параметров компаний.
256+
257+ ``` php
258+ use \App\Bitrix24\Bitrix24API;
259+
260+ try {
261+
262+ $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';
263+ $bx24 = new Bitrix24API($webhookURL);
264+
265+ // Добавляем новый контакт
266+ $contactId = $bx24->addContact([
267+ 'NAME' => 'Иван',
268+ 'COMPANY_ID' => 332,
269+ 'SECOND_NAME' => 'Васильевич',
270+ 'LAST_NAME' => 'Петров'
271+ ]);
272+ print_r($contactId);
273+
274+ // Устанавливаем набор связанных компаний
275+ $bx24->setContactCompanyItems($contactId, [
276+ [ 'COMPANY_ID' => 8483 ],
277+ [ 'CONPANY_ID' => 4094 ]
278+ ]);
279+
280+ // Обновляем существующий контакт
281+ $bx24->updateContact($contactId, [
282+ 'NAME' => 'Фёдор'
283+ ]);
284+
285+ // Загружаем контакт по ID вместе со связанными компаниями
286+ $contact = $bx24->getContact($contactId, [ 'COMPANIES' ]);
287+ print_r($contact);
288+
289+ // Удаляем существующий контакт
290+ $bx24->deleteContact($contactId);
291+
292+ // Загружаем все контакты используя быстрый метод при работе с большими объемами данных
293+ $generator = $bx24->fetchContactList();
294+ foreach ($generator as $contacts) {
295+ foreach($contacts as $contact) {
296+ print_r($contact);
297+ }
298+ }
299+
300+ // Пакетно добавляем контакты
301+ $contactIds = $bx24->addContacts([
302+ [
303+ 'NAME' => 'Владимир',
304+ 'COMPANY_ID' => 3322,
305+ 'SECOND_NAME' => 'Вадимович',
306+ 'LAST_NAME' => 'Владимиров'
307+ ],
308+ [
309+ 'NAME' => 'Андрей',
310+ 'COMPANY_ID' => 1332,
311+ 'SECOND_NAME' => 'Васильевич',
312+ 'LAST_NAME' => 'Иванов'
313+ ]
314+ ]);
315+ print_r($contactIds);
316+
317+ // Пакетно удаляем контакты
318+ $bx24->deleteContacts($contactIds);
319+
320+ } catch (\App\Bitrix24\Bitrix24APIException | \App\AppException $e) {
321+ printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
322+ }
323+ ```
229324
230325<a id =" %D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8 " ></a >
231326### Методы для работы с компаниями
232327
233328Методы для работы с компаниями находятся в трейте ` \App\Bitrix24\Company ` :
234329
330+ - ` getCompany($companyId, array $with = []) ` Возвращает компанию по ID.
331+ - ` addCompany(array $fields = [], array $params = []) :int ` Добавляет компанию и возвращает ее ID.
332+ - ` updateCompany($companyId, array $fields = [], array $params = []) :int ` Обновляет компанию и возвращает ее ID.
333+ - ` deleteCompany($companyId) :int ` Удаляет компанию и возвращает ее ID.
334+ - ` getCompanyList(array $filter = [], array $select = [], array $order = []) :\Generator `
335+ Загружает все компании с возможностью фильтрации, сортировки и выборки полей.
336+ - ` fetchCompanyList(array $filter = [], array $select = [], array $order = []) :\Generator `
337+ Загружает все компании с возможностью фильтрации, сортировки и выборки полей.
338+ Реализует [ быстрый метод] ( https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php ) загрузки при работе с большими объемами данных.
339+ - ` addCompanies(array $companies = [], array $params = []) :array ` Пакетно добавляет компании.
340+ - ` updateCompanies(array $companies = [], array $params = []) :array ` Пакетно обновляет компании.
341+ - ` deleteCompanies(array $companyIds = []) :array ` Пакетно удаляет компании.
342+ - ` getCompanyContactItems($companyId) :array ` Возвращает контакты, связанные с компанией.
343+ - ` setCompanyContactItems($companyId, array $contacts) :array ` Устанавливает контакты, связанные с компанией.
344+
345+ Параметры методов:
346+
347+ - ` $companyId ` - ID компании;
348+ - ` $companyIds ` - массив ID компаний;
349+ + ` $filter ` - параметры фильтрации;
350+ + ` $order ` - параметры сортировки;
351+ + ` $select ` - параметры выборки полей;
352+ - ` $contacts ` - массив параметров контактов;
353+ - ` $companies ` - массив параметров компаний.
354+
355+ ``` php
356+ use \App\Bitrix24\Bitrix24API;
357+
358+ try {
359+
360+ $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';
361+ $bx24 = new Bitrix24API($webhookURL);
362+
363+ // Добавляем новую компанию
364+ $companyId = $bx24->addCompany([
365+ 'TITLE' => 'OOO Рога и Копыта'
366+ ]);
367+ print_r($companyId);
368+
369+ // Устанавливаем набор связанных контактов
370+ $bx24->setCompanyContactItems($companyId, [
371+ [ 'CONTACT_ID' => 4838 ],
372+ [ 'CONTACT_ID' => 8583 ]
373+ ]);
374+
375+ // Обновляем существующую компанию
376+ $bx24->updateCompany($companyId, [
377+ 'TITLE' => 'ИП Рога и Копыта'
378+ ]);
379+
380+ // Загружаем компанию по ID вместе со связанными контактами
381+ $company = $bx24->getCompany($companyId, [ 'CONTACTS' ]);
382+ print_r($company);
235383
384+ // Удаляем существующую компанию
385+ $bx24->deleteCompany($companyId);
386+
387+ // Загружаем все компании используя быстрый метод при работе с большими объемами данных
388+ $generator = $bx24->fetchCompanyList();
389+ foreach ($generator as $companies) {
390+ foreach($companies as $company) {
391+ print_r($company);
392+ }
393+ }
394+
395+ // Пакетно добавляем компании
396+ $companyIds = $bx24->addCompanies([
397+ [ 'TITLE' => 'ПАО Абракадабра' ],
398+ [ 'TITLE' => 'ЗАО Моя компания' ]
399+ ]);
400+ print_r($companyIds);
401+
402+ // Пакетно удаляем компании
403+ $bx24->deleteCompanies($companyIds);
404+
405+ } catch (\App\Bitrix24\Bitrix24APIException | \App\AppException $e) {
406+ printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
407+ }
408+ ```
236409
237410<a id =" %D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%D0%BC%D0%B8 " ></a >
238411### Методы для работы с каталогами
0 commit comments