Управление 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— внешняя ссылка, используемая как ключ сопоставления.
Результат разделяет совпадение, расхождение и строку, присутствующую только во втором источнике.
Граница публикации
Не публикуй поддомены аккаунтов, учётные данны, токены, контакты, заявки, домены и местные пути. Для испытаний используй только синтетические данны.
Source: hashgraph-online/awesome-codex-plugins → plugins/nebelov/yandex-direct-for-all/skills/amocrm-api-control/SKILL.md