---
title: "WT AmoCRM library (Joomla) — Core API - WebTolk"
description: "Документация по ядру библиотеки WT AmoCRM (Webtolk\\Amocrm): фасад Amocrm, низкоуровневый клиент AmocrmRequest, исключения, трейты и контракт EntityInterface; показывает, как безопасно обращаться к сущностям AmoCRM в Joomla."
url: "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/wt-amocrm-library-joomla-core-api"
date: "2026-06-04T17:55:48+00:00"
language: "ru-RU"
---

# WT AmoCRM library (Joomla) — Core API

WT Amo CRM library - Документация

**Категория:** [Библиотеки](https://web-tolk.ru/dev/biblioteki)

[Проект](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library)[Версии](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/versions)[Документация](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation)[GitHub](https://github.com/WebTolk/WT-Amo-CRM-library-for-Joomla-4)

Документация по ядру библиотеки WT AmoCRM (Webtolk\Amocrm): фасад Amocrm, низкоуровневый клиент AmocrmRequest, исключения, трейты и контракт EntityInterface; показывает, как безопасно обращаться к сущностям AmoCRM в Joomla.

Документация по базовым классам библиотеки `Webtolk\Amocrm` из `lib_webtolk_amocrm/src`.

## Быстрый старт (рекомендуемый путь)

```
use Webtolk\Amocrm\Amocrm;

$amocrm = new Amocrm();

// Получить список сделок
$leads = $amocrm->leads()->getLeads(['limit' => 50]);

// Получить контакт по ID
$contact = $amocrm->contacts()->getContactById(123456);
```

Требования:

- Включён системный плагин **System - WT AmoCRM**.
- В параметрах плагина заполнены `amocrm_domain`, `amocrm_client_id`, `amocrm_client_secret` и (для OAuth) `amocrm_code`.
- Для webhook/компонента AJAX используется `com_ajax`.

## Класс `Amocrm`

Фасад библиотеки. В 1.3.0+ основной путь — доступ к сущностям через магический `__call()`: `$amocrm->leads()`, `$amocrm->contacts()`, `$amocrm->users()` и т.д.

Большинство методов в классе **помечены как deprecated** (1.3.0) и сохранены для обратной совместимости. Используйте Entity-классы через `__call()` и `AmocrmRequest`.

### Ключевые методы

- `__construct()` — загружает языковые файлы библиотеки и инициализирует `AmocrmRequest`.
- `getRequest(): AmocrmRequest` — получить объект запроса (рекомендуется для низкоуровневых вызовов).
- `__call(string $name, array $_): EntityInterface` — возвращает экземпляр сущности из `Webtolk\Amocrm\Entities`.

### Deprecated-методы (1.3.0, будут удалены в 2.0)

Используйте аналоги из Entity-классов:

- `getAccountInfo()` > `account()->getAccountInfo()`
- `getLeadById()` > `leads()->getLeadById()`
- `createLeads()` > `leads()->createLeads()`
- `createLeadsComplex()` > `leads()->createLeadsComplex()`
- `getTags()` > `tags()->getTags()`
- `getLeadsPiplines()` > `leads()->getLeadsPiplines()`
- `getCustomFields()` > `customfields()->getCustomFields()`
- `getContactsCustomFields()` > `customfields()->getContactsCustomFields()`
- `getCompaniesCustomFields()` > `customfields()->getCompaniesCustomFields()`
- `getCustomersCustomFields()` > `customfields()->getCustomersCustomFields()`
- `getContacts()` > `contacts()->getContacts()`
- `addContacts()` > `contacts()->addContacts()`
- `getUserById()` > `users()->getUserById()`
- `getNotes()` > `notes()->getNotes()`
- `addNotes()` > `notes()->addNotes()`

Также устарели собственные методы управления токенами (`authorize`, `setToken`, `storeTokenData` и т.д.).

## Класс `AmocrmRequest`

Низкоуровневый HTTP-клиент с логикой авторизации, кэша токена и обработки ошибок.

### Основные методы

- `getResponse(string $endpoint, ?array $data, string $request_method = 'POST', string $content_type = 'application/x-www-form-urlencoded', bool $custom_endpoint = false): object` - Делает REST-вызов к AmoCRM. - Если `$custom_endpoint = true`, путь берётся «как есть» (без `/api/v4`). - Возвращает объект ответа или объект ошибки `{ error_code, error_message }`.

- `canDoRequest(): bool`- Проверяет наличие параметров подключения и токена.

- `getPluginParams(): Registry`- Читает параметры плагина `system/wt_amocrm`.

- `getAmoCRMHost(): Uri`- Возвращает `Uri` для домена AmoCRM (с принудительным `https`).

- Методы управления токеном: `setToken()`, `setTokenType()`, `setTokenExpiresIn()` - `storeTokenData()` — сохраняет токен в Joomla Cache. - `storeRefreshToken()` — сохраняет refresh token в параметры библиотеки.

### Особенности

- Поддержка режима `token_type = long_term` (берёт токен из параметра `long_term_token`).
- Опциональное замедление запросов при `avoid_rest_api_limits_exceeding = 1` (usleep 150ms).
- Ошибки логируются в `lib_webtolk_amo_crm.log.php`.

### Пример низкоуровневого вызова

```
use Webtolk\Amocrm\Amocrm;

$amocrm = new Amocrm();
$request = $amocrm->getRequest();

// Получить аккаунт
$account = $request->getResponse('/account', null, 'GET', 'application/json');
```

## Exceptions

- `AmocrmException` — общий exception библиотеки.
- `AmocrmClientException` — deprecated (1.3.0).

## Traits

- `LogTrait`- `saveToLog(string $data, string $priority = 'NOTICE', string $log_name = 'lib_webtolk_amo_crm')` - Пишет в `logs/{log_name}.log.php`, показывает сообщение в админке.
- `DataErrorTrait` - `receivedEmptyData()` — формирует типовой error-объект. - `wrongEntityType()` — формирует error-объект при неверном типе сущности.

## Интерфейс `EntityInterface`

Минимальный контракт: конструктор принимает `AmocrmRequest`.

```
public function __construct(AmocrmRequest $request);
```

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/dev",
                "name": "Расширения Joomla"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "@id": "/dev/biblioteki",
                "name": "Библиотеки"
            }
        },
        {
            "@type": "ListItem",
            "position": 4,
            "item": {
                "@id": "/dev/biblioteki/wt-amo-crm-library",
                "name": "WT Amo CRM library"
            }
        },
        {
            "@type": "ListItem",
            "position": 5,
            "item": {
                "@id": "/dev/biblioteki/wt-amo-crm-library/documentation",
                "name": "Документация"
            }
        },
        {
            "@type": "ListItem",
            "position": 6,
            "item": {
                "name": "WT AmoCRM library (Joomla) — Core API"
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/wt-amocrm-library-joomla-core-api",
            "name": "WT AmoCRM library (Joomla) — Core API - WebTolk",
            "description": "Документация по ядру библиотеки WT AmoCRM (Webtolk\\Amocrm): фасад Amocrm, низкоуровневый клиент AmocrmRequest, исключения, трейты и контракт EntityInterface; показывает, как безопасно обращаться к сущностям AmoCRM в Joomla.",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/TechArticle/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "TechArticle",
            "headline": "WT AmoCRM library (Joomla) — Core API",
            "url": "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/wt-amocrm-library-joomla-core-api",
            "description": "Документация по ядру библиотеки WT AmoCRM (Webtolk\\Amocrm): фасад Amocrm, низкоуровневый клиент AmocrmRequest, исключения, трейты и контракт EntityInterface; показывает, как безопасно обращаться к сущностям AmoCRM в Joomla.",
            "mainEntityOfPage": {
                "@type": "WebPage",
                "url": "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/wt-amocrm-library-joomla-core-api"
            },
            "keywords": [
                "joomla",
                " amocrm",
                " php",
                " documentation"
            ]
        }
    ]
}
```
