| name | amocrm-api-control |
| description | Безопасная OAuth-авторизация amoCRM, чтение схемы аккаунта и сверка заявок по источнику, времени, статусу, ответственному и внешней ссылке. |
Управление amoCRM через программный интерфейс
Граница задачи
Навык предназначен для получения и обновления OAuth-токенов, чтения воронок, статусов и полей, а также сверки заявок. Любые изменения бизнес-данных требуют отдельного плана, точной области, подтверждения и чтения после записи.
Перед созданием интеграции
- Используй уже существующую интеграцию, если она есть.
- Создание закрытой интеграции в нетехническом аккаунте может иметь последствия для технической поддержки; покажи владельцу актуальное предупреждение из интерфейса amoCRM.
redirect_uri должен точно совпадать с адресом интеграции. Местный приёмник слушает только 127.0.0.1 и проверяет точные путь и state.
Закрытые файлы
Все файлы интеграции, state, кода авторизации и токенов должны иметь права 0600, а их папки — 0700. Секрет, код и токен не передавай аргументом и не печатай.
Ожидаемая схема файла интеграции:
{
"subdomain": "ACCOUNT_SUBDOMAIN",
"client_id": "PUBLIC_INTEGRATION_ID",
"client_secret": "PRIVATE_INTEGRATION_SECRET",
"redirect_uri": "EXACT_REGISTERED_REDIRECT_URI"
}
Порядок OAuth
- Создай случайное состояние и сохрани его в закрытом файле.
- Запусти
scripts/amocrm_local_callback_server.py с явными --state-file и --output.
- Открой адрес согласия, содержащий тот же
state.
- Приёмник сохранит только код, а не полный адрес.
- Запусти
scripts/exchange_amocrm_token.py с --integration-file, --authorization-code-file и --token-file. Для обновления используй --refresh без файла кода.
- После успешного первого обмена удали одноразовый файл кода.
Чтение схемы и сверка
scripts/fetch_amocrm_schema.py проходит постраничную выдачу и сохраняет схему аккаунта в закрытой папке. Повтор той же страницы считается ошибкой.
Для сверки каждая строка обязана иметь поля:
source — источник;
occurred_at — время события;
status — статус;
responsible — ответственный;
external_link — внешняя ссылка, используемая как ключ сопоставления.
Результат разделяет совпадение, расхождение и строку, присутствующую только во втором источнике.
Граница публикации
Не публикуй поддомены аккаунтов, учётные данны, токены, контакты, заявки, домены и местные пути. Для испытаний используй только синтетические данны.