Skip to main content

A tiny Python3 client to make requests of Bitrix24 API.

Project description

bitrix24-python3-client

A tiny Python3 client to make requests of Bitrix24 API.

Requirements

Depends on the following packages (see requirements.txt):

  • requests

Installation

First of all install necessary dependencies (see above) and bitrix24-python3-client itself:

$ pip install bitrix24-python3-client

Getting started

The client is tiny therefore it's easy to use. All what you need to start it's domain name, client ID and client secret key of your application (if you already have access and refresh tokens you can pass it as optional kwargs into the Bitrix24 client).

First of all you need to create Bitrix24 instance to work with. Let's create it as follows (we will consider basic configuration without existing tokens):

    # Import Bitrix24 client to work with
>>> from bitrix24 import Bitrix24
    # Create instance with basic configuration
>>> bx24 = Bitrix24('your-domain.bitrix24.com', 'your.client.id', 'your_client_secret')

Looks like not bad, but you can't do anything yet. You must fill out all required attributes of the Bitrix24 client. To do that we can request it directly from a Bitrix24 server (or pass as optional kwargs for the Bitrix24 client before creating an instance):

    # Get authorization URL to request authorization code via browser
>>> bx24.resolve_authorize_endpoint()
'https://your-domain.bitrix24.com/oauth/authorize/?client_id=your.client.id&response_type=code'
    # Request tokens to interact with Bitrix24 API
>>> bx24.request_tokens('requested_authorization_code')

You can check if all's well by following command which simply return dict of current tokens:

    # Get current access and refresh tokens
>>> bx24.get_tokens()
{'access_token': 'requested_access_token', 'refresh_token': 'requested_refresh_token'}

Pay attention! Your tokens have 1 hour lifecycle by default therefore you may need to refresh tokens at the expiration of this time:

    # Refresh current tokens (refresh token required)
>>> bx24.refresh_tokens()
    # Check whether old tokens was replaced
>>> bx24.get_tokens()
{'access_token': 'new_access_token', 'refresh_token': 'new_refresh_token'}

Okay, all the preparation works done and now we can make API calls to a Bitrix24 server (don't forget to check the client_endpoint attribute of the Bitrix24 client whether it exists).

Make a single call:

    # The following example needs the `user` permission
>>> bx24.call_method('user.get', {'ID': 1})
{'result': {...}}

Make a batch call (many single calls by one request):

    # The following example needs the `user` and `department` permissions
>>> bx24.call_batch({
...     'get_user': ('user.current', {}), # or 'user.current'
...     'get_department': {
...         'method': 'department.get',
...         'params': {'ID': '$result[get_user][UF_DEPARTMENT]'}
...     }
... })
{'result': {'result': {...}}}

Make an event binding (shortcut for the event.bind method):

>>> bx24.call_bind('OnAppUpdate', 'https://example.com/')
{'result': {...}}

Make an event unbinding (shortcut for the event.unbind method):

>>> bx24.call_unbind('OnAppUpdate', 'https://example.com/')
{'result': {...}}

Get closer to webhooks

All methods described above come in handy when you develop applications or similar tricky things. However, sometimes will be enough to call a webhook - simplified version of rest-events and rest-teams that does not require a application to write.

So, let's create a simple webhook!

If you need to make webhook calls only, the following configuration will fit (in other case see verbose configuration above):

    # Import Bitrix24 client to work with
>>> from bitrix24 import Bitrix24
    # Create instance with basic configuration
>>> bx24 = Bitrix24('your-domain.bitrix24.com', user_id=1)

Make a webhook call:

    # You can pass a dict of params as third argument
>>> bx24.call_webhook('profile', 'xxxxxxxxxxxxxxxx')
{'result': {...}}

That's end of quick introduction. To learn details, explore source code (believe me those code is such simple as this client). Good luck!

Status

The client is already ready to use (v0.3.3).

I'll probably add more functionality later. This is what I need right now.

Copyright and License

Copyright (c) 2017-2019 Yuriy Rabeshko. Code released under the MIT license.

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

bitrix24-python3-client-0.4.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

bitrix24_python3_client-0.4.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file bitrix24-python3-client-0.4.0.tar.gz.

File metadata

  • Download URL: bitrix24-python3-client-0.4.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.4

File hashes

Hashes for bitrix24-python3-client-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b2b0f15b2c23c2e7ad083b4e69ab9af4e4608e8e5034920755d80aa71eefb190
MD5 2003bab25077c888b06d91445be7f3c6
BLAKE2b-256 5b7305258b45c8b05f7a6d1d2e00581786a0001c470d0c155dff6841d66769ad

See more details on using hashes here.

File details

Details for the file bitrix24_python3_client-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: bitrix24_python3_client-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.4

File hashes

Hashes for bitrix24_python3_client-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9c6254ddbab2d8fe8a73673dde0f0b0651594021fd6a37361de5187893785a4
MD5 eccc3ff51946d824771252d367df385f
BLAKE2b-256 04431d84c51d89215165d2f8543daa4fb2b9852626af1a7da0215838686bb0fa

See more details on using hashes here.

Supported by

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