Skip to main content
https://travis-ci.org/Krukov/amocrm_api.svg?branch=master https://img.shields.io/coveralls/Krukov/amocrm_api.svg

Python AmoCRM API v2 (http://www.amocrm.ru/) (human interface for easy using)

Installation

pip install amocrm_api

Usage

Авторизация

Авторизация - с Июня 2020 amocrm форсировала смену авторизации с токена на Oauth Но Oauth без поддержки server to server взаимодействия, связи с чем текущая реализация содержит следующие ограничения 1. В личном кабинете необходимо создать интеграцию 2. Рефрешь токен однаразовый и обновляется при каждом получении аксесс токена 3. Токены нужно хранить, для этого есть api и существует 3 типа хранилиша (можно реализовать свой):

  • MemoryTokensStorage - хранит токены в памяти (если вы перезапускаете приложение то придется стнова создавать refresh_token)

  • FileStorage - сохраняет токены в файле

  • RedisTokensStorage - сохраняет токены в редисе (pip install redis) для new-age приложений каторые работают в нескольок инстансов

Example:

from amocrm.v2 import tokens

tokens.default_token_manager(
    client_id="xxx-xxx-xxxx-xxxx-xxxxxxx",
    client_secret="xxxx",
    subdomain="subdomain",
    redirect_url="https://xxxx/xx",
    storage=tokens.FileTokensStorage(),  # by default FileTokensStorage
)
tokens.default_token_manager.init(code="..very long code...", skip_error=True)
  • Контакт - Contact

  • Компания - Company

  • Теги - Tags

  • Сделка - Lead

  • Задача - Task

  • Событие - Note

Работа с сушьностями

У каждой сущности есть менеджер (проперти objects), который имеет следующие методы

<Entity>.objects.get(object_id=1, query="test")  # получение обьекта
<Entity>.objects.all()  # получение всех сущьностей
<Entity>.objects.filter(**kwargs)  # получение списка сущьностей с фильтром

<Entity>.objects.create(**kwargs)  # создание сущьности (нет явной сигнатуры поэтому лучше испольщовать метод create самой сушьности)
<Entity>.objects.update(**kwargs)  # обносление сущьности (нет явной сигнатуры поэтому лучше испольщовать метод update самой сушьности)

В свою очередь сама сушьность имеет несколько методов для более простого создания и обноления

<EntityInstance>.create()
<EntityInstance>.update()
<EntityInstance>.save()  # создаст или обновит в зависимости от того как обьект был инициализирован

Исключение - зоздание звонка происходит через упрошенную сущьность

from amocrm.v2 import Call, CallDirection, CallStatus

Call().create(CallDirection.OUTBOUNT, phone="....", source="", duration=timedelta(minutes=10), status=CallStatus.CALL_LATER, created_by=manager)

Рассмотрим полный флоу работы на примере контакта

from amocrm.v2 import Contact, Company

contact = Contact.objects.get(query="Тест")
print(contact.first_name)
print(contact.company.name)
print(contact.created_at)

contact.last_name = "Новое"
contact.tags.append("new")
contact.notes.objects.create(text="Примечание")

contact.save()

contact.company = Company(name="Amocrm")  # создаст и приленкует компанию сразу
print(contact.company.id)

len(list(contact.customers)) # lazy list
contact.customers.append(Customer(name="Volta"))

Кастомные поля

Одна из удобных возможностей AmoCrm - кастомные поля

Example:

from amocrm.v2 import Lead as _Lead, custom_field

class Lead(_Lead):
    utm = custom_field.UrlCustomField("UTM метка")
    delivery_type = custom_field.SelectCustomField("Способ доставки")
    address = custom_field.TextCustomField("Адрес")

Однако мапинг всех кастомных полей дело утоминетльное, поэтому для генерации файла с готовым мапингом есть команда:

export AMOCRM_CLIENT_ID=xxx
export AMOCRM_SECRET=xxx
export AMOCRM_SUBDOMAIN=xxx
export AMOCRM_REDIRECT_URL=xxx
export AMOCRM_CODE=xxx # optional
pyamogen > models.py

Release files for amocrm-api 2.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amocrm-api 2.3.1
File Size Uploaded
amocrm_api-2.3.1.tar.gz 22.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amocrm-api 2.3.1
File Interpreter ABI Platform
amocrm_api-2.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 51.9 kB

Release files / amocrm_api-2.3.1.tar.gz

Download URL amocrm_api-2.3.1.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ca324c7f930643584b4c6388ee81fce81f32de04116cbbfae3b24207b2ad9d46
BLAKE2b-256 checksum
How to use checksums
35d1f606c72fbace08273cd61253df903ace3e333e31d47e7604198a3083f870
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / amocrm_api-2.3.1-py3-none-any.whl

Download URL amocrm_api-2.3.1-py3-none-any.whl
Size 29.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
66f5e0e129fe7ab3ca7be611c85ac6f222b0b9b4910fd209c52dc8e9ff714c79
BLAKE2b-256 checksum
How to use checksums
cf89c8b1d393ff8911a53154f8d7bf9bd19d5e6bc59bcc09e36c0d23fea34cbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release history Release notifications | RSS feed

2.6.1

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.2

2 release files

This release

2.3.1 This release

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.3.0

1 release file

0.2.1

2 release files

0.2.0

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page