Download the PHP package opravdin/amohook without Composer
On this page you can find all versions of the php package opravdin/amohook. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download opravdin/amohook
More information about opravdin/amohook
Files in opravdin/amohook
Package amohook
Short Description Makes your AmoCRM Webhooks looks pretty
License MIT
Homepage https://github.com/opravdin/amohook
Informations about the package amohook
Обработчик Webhooks от AmoCRM
Что делает эта библиотека
Она позволяет с легкостью обрабатывать WebHooks от AmoCRM без необходимости писать большое количество логики проверок сущности хука и события, а также наличия различных переменных в теле запроса. Просто сфокусируйтесь на обработке, а разбор данных доверьте этому классу.
Установка
Использование
В AmoCRM задать точку входа для ваших хуков (URL обработчика). Можно выбрать только необходимые события или все сразу.
Метод 1. Использование цепочки вызова
Настройка воронки обработки вебхука. Регистрируйте 3 вида обработчиков
1) Непосредственный обработчик хука - подходит для логики обработки
2) Обработчик ошибок - вызывается когда первая группа завершается с исключением. Могут прервать дальнейшую работу обработчиков.
3) Финишные обработчики - запускаются когда каждый обработчик из 1 группы завершает работу. Получают во входных параметро
Регистрируйте сразу несколько действий/сущностей при помощи массивов или передавайте строки для выборочной регистрации. Метод получит событие как параметр вызова.
содержимое $payload, передаваемого в обработчики:
- entity - название сущности в соответствие с хуком амо (кроме компаний, они обрабатываются как companies)
- action - название события (например, add или update)
- data - тело события. Включает в себя все данные из хука по данному событию (id, name и так далее). Эквивалентно $request['сущность']['событие'][0]
Метод 2. Получение данных в упрощенной форме
Самый простой вариант использования: получение обработанного массива данных с выделенным типом сущности и события. Массив содержит сущности, аналогичные $payload из метода выше
Вы можете изучить тесты (tests) для изучения работы класса
Обработка ошибок и отладка
По умолчанию класс скрывает все происходящие внутри обработчиков ошибки т.к. amoCRM отключает WebHooks если количество ошибок за короткий промежуток времени превысит определенный порог. Поэтому для отслеживания ошибок и отладки настоятельно рекомендуется добавить хотя бы один логгирующий обработчик onError. Альтернативно, можно заставить библиотеку принудительно выводить ошибки, вызвав перед
Отслеживание времени работы обработчика
При работе amoCRM ожидает ответ от сервера в течение не более чем 2 секунд. Длительный ответ с точки зрения amoCRM эквивалентен ошибочному коду возврата, что также ведет к отключению хука. Для замера времени можно использовать следующую конструкцию:
Примечание: этот способ измерения не совсем точный т.к. не учитывает реальное время начала обработки запроса, см ссылку
Доступные сущности и события
Все сущности и события именуются согласно их названию в Webhooks AmoCRM (leads, contacts и update, add и т.д.). Стоит отметить, что библиотека корректно различает контакты и компании: contacts и companies соответственно.
Дополнительно можно использовать any для определения сущностей и событий для методов обратного вызова.
Для упрощения работы все наименования сущностей и событий были вынесены
Внесение вклада
Я с удовольствием приму ваши комментарии, предложения и доработки в Issues или Pull requests :)