Как установить и настроить библиотеку Amo CRM в Joomla. Создание интеграции по API на стороне Amo CRM.
Установка расшрения в Joomla
Установка и обновление библиотеки происходит стандартным для Joomla способом через менеджер расширений. Пройдите в Система - Установка - Расширения.

Вернитесь на страницу расширения на сайте https://web-tolk.ru, нажмите правой кнопкой мыши на кнопку "скачать" и выберите "скопировать адрес ссылки". Ссылка на скачивание скопируется в буфер обмена.

В разделе установки расширений выберите вкладку "Установить по URL" и нажмите "Проверить и установить". Либо же скачайте предварительно zip-архив и установите через вкладку "Загрузить и установить".

После успешной установки будет показаный приветственный экран расширения.

Настройка библиотеки Amo CRM в Joomla
Библиотека состоит из собственно библиотеки и системного плагина для настроек библиотеки. Также этот системный плагин регистрирует namespace библиотеки в пространстве имен Joomla. Таким образом, если плагин выключен, Вы не сможете использовать библиотеку и обращение к её namespace будет вызывать ошибку.
Пройдите в Система - Управление - Плагины.

Найдите в поиске по плагинам плагин System - WT Amo CRM Library.


По умолчанию плагин выключен и при установке не включается автоматически. Поскольку не указаны аутентификационные данные, будет показано сообщение об ошибке: Plugin System - WT Amo CRM: there is no credentials data.

Для работы библиотеки нужно указать данные интеграции по API, которая создаётся в интерфейсе AmoCRM.
Создание внешней интеграции по API AmoCRM
Зайдите в свой портал AmoCRM. Выберете в левом меню раздел amoМаркет.

Для создания интеграции по API выберите "Создать интеграцию" в выпадающем меню с тремя точками около кнопки WEB HOOKS в разделе AmoМаркет.

В модальном окне "Создание интеграции" выберите тип "Внешняя интеграция". В описании типа интеграции сказано:
Внешняя интеграция взаимодействует с API amoCRM при помощи запросов и не требует загрузки архива с JS-кодом виджета. Авторизация и обработка данных аккаунта происходит на стороне сервиса интегратора с помощью доступов выданных при создании интеграции в аккаунте amoCRM.

Для создания интеграции Joomla и Amo CRM нужно указать URL для вебхуков интеграции, который Вы можете скопировать из настроек плагина System - WT Amo CRM Library. На данный момент вебхуки по этому URL никак не обрабатываются. В следующих версиях библиотеки будет добавлена возможность их обработки.
Также для создания потребуется указать права доступа интеграции (все), включить контроль дублей, указать её название и описание.

Созданную интеграцию можно увидеть в разделе AmoCRM - AmoМаркет - Установленные - название Вашей интеграции.

Необходимо из вкладки "Ключи и доступы" скопировать в настройки плагина:
- секретный ключ - в настройках плагина это Client secret.
- ID интеграции - в настройках плагина это Client ID
- Код авторизации - в настройках плагина это Auth code
Код авторизации действует 20 минут и его можно использовать лишь однажды. По истечении 20 минут или неудачной авторизации интеграцию в Amo CRM придется пересоздавать.
После успешной авторизации AmoCRM выдает refresh token, который действует одни сутки и хранится в базе данных в параметрах библиотеки. Обновление токена происходит автоматически в случае использовании интеграции.
В случае если интеграцией не пользовались в течение 3-х месяцев - её придется пересоздавать заново.

В случае успешного подключения и получения refresh token в настройках плагина отобразится поле типа accountinfo с данными портала и пользователя.

На этом установку и подключение можно считать завершёнными. Библиотеку можно подключать через use Webtolk\Amocrm\Amocrm; и использовать её методы в своих расширениях.
Долгосрочные токены AmoCRM
Начиная с версии 1.3.0 библиотека поддерживает авторизацию по долгосрочным токенам AmoCRM. Они отличаются от стандартных ограниченным сроком действия, который может составлять до 5 лет. Таким образом даже если ваша интеграция бездействовала более 3-х месяцев - токен по-прежнему будет действовать. С другой стороны вам нужно самостоятельно отслеживать срок окончания действия токена и обновлять его при необходимости.
