bx24-orm
Обертка для Bitrix24 API.
С помощью нее вы можете вместо:
import requests
token = get_token_function() # get your Bitrix24 token
# prepare your parameters
params = {
'id': lead_id,
'auth': token
}
reponse = requests.get(your_domain_url+'crm.lead.get', params)
# check if request is OK
if response.status_code < 300:
result = response.json()['result']
else:
handle_errors(response)
сделать так:
from bx24_orm.entity.crm import BxLead
from bx24_orm.exceptions.code_exceptions import BxException
try:
result = BxLead.get(lead_id)
except BxException as ex:
handle_error(ex) # your handling code
Установка
Чтобы установить пакет:
pip install bx24-orm
Начало работы
-
Для начала нужно создать файл конфигурации
bx24_settings.py. Рекомендую создать его в корне проекта.TOKEN_STORAGE_FILE_PATH = 'bx24_tokens' # путь до файла где хранятся токены приложения DEFAULT_DOMAIN = '{Ваш домен 3-го уровня}' DEFAULT_TRANSPORT = 'json' # xml пока не поддерживается BX24_DOMAIN_SETTINGS = { '{домен 3-го уровня}': { 'client_id': '{ваш_client_id}', 'client_secret': '{ваш_client_secret}' } } -
Далее добавьте путь до файла настроек в переменную окружения:
BX24_SETTINGS_MODULE -
Получите токены для доступа к API. Для удобства можете воспользоваться скриптом командной строки:
> bx24_cmd get_tokens -c {ваш client_id} -s {ваш client_secret} -d {ваш домен 3-го уровня в битрикс}Далее пройдите по ссылке, появившейся в скрипте. Если нужно авторизируйтесь в вашем Bitrix24. И скопируйте параметр code из url браузера и вставьте его в консоль.
-
Используя python консоль в вашем проекте выполните следующий код:
from bx24_orm.core import token_storage token_storage.save_token('ваш домен 3-го уровня', 'access_token', 'refresh_token') -
Готово! Пакет готов к использованию!
Кастомизация ваших моделей
from bx24_orm.enitiy.crm import BxDeal, BxLead, BxCompany, BxField
class Deal(BxDeal):
custom_field = BxField('UF_CRM_1539088441')
class Lead(BxLead):
custom_field = BxField('UF_CRM_1539088367')
class Company(BxCompany):
custom_field = BxField('UF_CRM_1539088478')
Стоит помнить: Для экономии трафика при изменении моделей, они отслеживают какие поля изменились. Следовательно, чтобы изменить ссылочные типы данных модели, например телефон, нужно делать так:
lead = Lead.get(1)
new_phone = lead.phone()
new_phone[0]['VALUE'] = 'NEW_VALUE'
lead.phone = new_phone
lead.save()
Заключение
Если у вас возникнут вопросы, то не стесняйтесь написать мне на почту: dmitriilazukov@gmail.com
Также приветствуются Pull Request-ы.
Metadata
Release files for bx24-orm 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bx24_orm-0.0.3.tar.gz | 19.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bx24_orm-0.0.3-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 44.5 kB
Release files / bx24_orm-0.0.3.tar.gz
| Download URL | bx24_orm-0.0.3.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84c787e515b9878353812bd5bbbaab864a091df01e64fd608ad1aa0c24275b3a
|
|
BLAKE2b-256 checksum How to use checksums |
9c2df4256a97c88554a3c00a6d4f5d9eca348e2f14665b4bb018c395e089a303
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15
|
Release files / bx24_orm-0.0.3-py2-none-any.whl
| Download URL | bx24_orm-0.0.3-py2-none-any.whl |
|---|---|
| Size | 25.3 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
7932056b2b0ddece1d544f2138dbb6f44e8816014c8f657f61bedab93bcb9332
|
|
BLAKE2b-256 checksum How to use checksums |
3af6c4d7d318d06bd62990e92fa519f4a389c1b091dcd6fb4dd8a7cb661aadc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15
|