Skip to main content

PyBitrix is my lightweight implementation of Bitrix 24 REST API wrapper

Project description

PyBitrix

version

downloads


PyBitrix is my lightweight implementation of Bitrix 24 REST API wrapper that I use in my own applications/integrations

Requirements

  • Python 3.6+
  • requests
  • aiohttp

Quick start

Install package from pip

pip3 install pybitrix

Then create PyBitrix instance

from pybitrix import PyBitrix

# for webhook usage
webhook = "https://You/hook from/bitrix/developers panel/"
b24 = PyBitrix(inbound_hook=webhook)

# for use as application (with tokens)
domain = "BX DOMAIN (eg. some-stuff.bitrix.ru). Can be taken from bitrix request to your app"
auth_id = "ACCESS_TOKEN_TAKEN_FROM_BITRIX_REQUEST_TO_YOUR_APP"
refresh_id = "REFRESH_TOKEN_TAKEN_FROM_BITRIX_REQUEST_TO_YOUR_APP"
app_id = "APP_ID_FROM_MARKETPLACE_OR_LOCAL_APP_INSTALLATION"
app_secret = "SECRET_KEY_FROM_MARKETPLACE_OR_LOCAL_APP_INSTALLATION"
b24 = PyBitrix(domain=domain, access_token=auth_id, refresh_token=refresh_id, app_id=app_id, app_secret=app_secret)

Make call

bx24.call('crm.contact.list', {
    'order': ['DSC'],
    'select': ['TITLE', 'DATE_CREATE'],
    'filter': {"<ID": 50}
})

Make batch call

batch={
    'contacts': 'crm.contact.list', 
    'deals': 'crm.deal.list'
}
batchParams={
    'contacts': [
        'select[]=TITLE', 
        'order[ID]=DSC', 
        'filter[>ID]=15'
    ], 'deals' : [
        'select[]=TITLE',
        'select[]=STAGE_ID'
    ]
}
response = bx24.callBatch(batch=batch, batchParams=batchParams)
print("CONTACTS: {}".format(response['result']['result']['contacts']))
print("DEALS: {}".format(response['result']['result']['deals']))

Renew tokens

PyBitrix refreshes tokens automatically, but if you want to do this manually, you should call method refresh_tockens()

bx24.refresh_tokens()

asyncio + aiohttp

To use async version, you need to just import PyBitrixAsync

    from pybitrix import PyBitrixAsync
    b24 = PyBitrixAsync(...)
    result = await b24(...)

Todos

  • More comfortable batchParams collector
  • Fast lists uploading via 'start': -1

License

MIT

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

PyBitrix-1.2.7.tar.gz (5.3 kB view hashes)

Uploaded Source

Built Distribution

PyBitrix-1.2.7-py3-none-any.whl (6.6 kB view hashes)

Uploaded Python 3

Supported by

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