GithubHelp home page GithubHelp logo

bx24_orm's Introduction

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

Начало работы

  1. Для начала нужно создать файл конфигурации 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}'
        }
    }
    
  2. Далее добавьте путь до файла настроек в переменную окружения: BX24_SETTINGS_MODULE

  3. Получите токены для доступа к API. Для удобства можете воспользоваться скриптом командной строки:

    > bx24_cmd get_tokens -c {ваш client_id} -s {ваш client_secret} -d {ваш домен 3-го уровня в битрикс}

    Далее пройдите по ссылке, появившейся в скрипте. Если нужно авторизируйтесь в вашем Bitrix24. И скопируйте параметр code из url браузера и вставьте его в консоль.

  4. Используя python консоль в вашем проекте выполните следующий код:

    from bx24_orm.core import token_storage
    token_storage.save_token('ваш домен 3-го уровня', 'access_token', 'refresh_token')
    
  5. Готово! Пакет готов к использованию!

Кастомизация ваших моделей

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() 

Заключение

Если у вас возникнут вопросы, то не стесняйтесь написать мне на почту: [email protected]

Также приветствуются Pull Request-ы.

bx24_orm's People

Contributors

dmitriilazukov avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.