Skip to main content

Python library for working with amoCRM API

Project description

amochka

Официальная документация API amocrm - https://www.amocrm.ru/developers/content/crm_platform/api-reference

amochka — библиотека для работы с API amoCRM на Python. Она поддерживает:

  • Получение данных сделок с вложенными сущностями (контакты, компании, теги, и т.д.)
  • Редактирование сделок, включая обновление стандартных и кастомных полей
  • Поддержку нескольких amoCRM-аккаунтов с персистентным кэшированием кастомных полей для каждого аккаунта отдельно
  • Ограничение запросов (7 запросов в секунду) с использованием декораторов из библиотеки ratelimit

Основные функции

  • get_deal_by_id(deal_id) — получение детальной информации по сделке
  • get_pipelines() — список воронок и статусов
  • fetch_updated_leads_raw(pipeline_id, updated_from, ...) — выгрузка необработанных сделок за период

Требования к окружению

Python 3.8 или новее. Потребуются пакеты requests и ratelimit.

Установка

Установите зависимости командой:

pip install requests ratelimit

Затем скопируйте репозиторий или установите пакет из PyPI (после публикации):

pip install amochka

Кэширование кастомных полей

Для уменьшения количества запросов к API кастомные поля кэшируются персистентно. Если параметр cache_file не указан, имя файла кэша генерируется автоматически на основе домена amoCRM-аккаунта. Вы можете обновлять кэш принудительно, передавая параметр force_update=True в метод get_custom_fields_mapping() или настроить время жизни кэша (по умолчанию — 24 часа).

Выгрузка обновленных сделок

Метод fetch_updated_leads_raw() позволяет получить все сделки из указанной воронки, которые были изменены в заданный промежуток времени. Результат можно сохранить в JSON-файл без какой‑либо обработки:

from datetime import datetime, timedelta
from amochka import AmoCRMClient, CacheConfig

client = AmoCRMClient(
    base_url="https://bneginskogo.amocrm.ru",
    token_file="/path/to/token.json",
    cache_config=CacheConfig.disabled(),
    disable_logging=True
)

three_hours_ago = datetime.utcnow() - timedelta(hours=3)
client.fetch_updated_leads_raw(6241334, updated_from=three_hours_ago, save_to_file="leads.json")

Пример получаемого JSON (укороченный):

[
  {
    "id": 26282337,
    "name": "Автосделка: Заявка от (Максим Брокер Дубай Бюро Негинского)",
    "custom_fields_values": [
      {
        "field_name": "roistat",
        "values": [{"value": "2026"}]
      }
    ],
    "_embedded": {
      "tags": [
        {"id": 179813, "name": "WZ (Федор 971568113315)"}
      ]
    }
  }
]

Для подключения к реальному аккаунту сохраните JSON с OAuth‑токеном и укажите его путь в параметре token_file при создании клиента. Базовый URL можно взять из переменной окружения AMO_BASE_URL.

Тесты

Файл tests/test_client.py содержит небольшой набор автоматических тестов, написанных на pytest. Они запускают методы клиента на подставном классе DummyClient и проверяют, что функции работают так, как ожидается. Запустить тесты можно командой:

pytest -q

Эти тесты помогают убедиться, что изменения в коде не ломают основную функциональность.

Пример использования fetch_updated_leads_raw

Кроме примера в разделе выше, код из example_fetch.py демонстрирует полный процесс получения сделок и сохранения их в файл.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amochka-0.1.9.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amochka-0.1.9-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file amochka-0.1.9.tar.gz.

File metadata

  • Download URL: amochka-0.1.9.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for amochka-0.1.9.tar.gz
Algorithm Hash digest
SHA256 722e8389411d0ff5bc20c9ec32bc28ce6c82cc9517db0e5220f38fffabeb5a8a
MD5 f15714c1d6e2c63ff1b3f7a11b401af8
BLAKE2b-256 4338ab315dca87c016a6ec27f0278ef99f6b5bd3d08b719451ff2004b6c07f71

See more details on using hashes here.

File details

Details for the file amochka-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: amochka-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for amochka-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 025deb5b30fa7804fc0f51805317a4d19a8a411ee0e6102cddbb520e0c1f48d9
MD5 5cd6df759b9202b9317e886fef8e146b
BLAKE2b-256 56726b90a3902c0cd61bba0ff512f1269baf3ca93955189ec291ed959b2f0859

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page