GithubHelp home page GithubHelp logo

akopdev / bitrix24-python-rest Goto Github PK

View Code? Open in Web Editor NEW
55.0 55.0 20.0 30 KB

API wrapper for working with Bitrix24 REST API over webhooks.

Home Page: https://pypi.org/project/bitrix24-rest/

License: MIT License

Python 73.38% Makefile 26.62%
bitrix bitrix24 python

bitrix24-python-rest's People

Contributors

akopdev avatar ivansstyle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bitrix24-python-rest's Issues

wrong parameter name in method.

I am trying to get the SKUs data from bitrix24 but when requests the endpoint it throws an error.
image
python api call as follows:
image

other methods are working fine forexample:
image

Unintuitive interface when using crm.deal.productrows.set

I went to https://training.bitrix24.com/rest_help/crm/deals/crm_deal_productrows_set.php and tried using this library like so:

bx24.callMethod(
    'crm.deal.productrows.set',
    id=order_id,
    rows=[
        {'PRODUCT_ID': 12, 'QUANTITY': 1, 'PRICE': 100}
    ],
)

This wasn't working, just removing all product rows from deal. Also response == True, so bitrix wasn't giving much useful info there.

I realised that in https://github.com/akopkesheshyan/bitrix24-python-rest/blob/master/bitrix24/bitrix24.py#L85 p was like

id=540&[rows][PRODUCT_ID]=12...

however bitrix expected

id=540&rows[PRODUCT_ID]=12...

I solved my problem by passing a dict to rows:

bx24.callMethod(
    'crm.deal.productrows.set',
    id=order_id,
    rows={
        0: {'PRODUCT_ID': 12, 'QUANTITY': 1, 'PRICE': 100}
    },
)

and got

id=540&rows[PRODUCT_ID]=12...

then my product rows were added to my deal.

Suggestion: refactor https://github.com/akopkesheshyan/bitrix24-python-rest/blob/master/bitrix24/bitrix24.py#L47-L72 to enable this workflow:

  1. visit bitrix docs
  2. copy-paste arguments from the example
  3. get a working function

It will probably break backward compatibility though.

Is "catalog.price.list" method should be working?

Метод REST API catalog.price.list(select, filter, order, navigation) [https://dev.1c-bitrix.ru/rest_help/catalog/price/catalog_price_list.php] похоже не работает.
Он не ждет start, а использует другой параметр navigation и при попытке получить все цены (без фильтра) дает неверный результат. Конкретно у меня без указания productId дает всего одну запись. Если запрашивать для одного товара - выдает.
Есть еще методы с аналогичным типом выдачи в REST API.

Im and chats won't work.

Hi. IM and chats won't work for me Tried
bx24.callMethod('im.message.add', fields={'DIALOG_ID': '4', 'MESSAGE': 'Bla-bla-bla'})
bx24.callMethod('im.notify', fields={'TO': '4', 'MESSAGE': 'Bla-bla-bla'})
bx24.callMethod('im.notify.personal.add', fields={'USER_ID': '4', 'MESSAGE': 'Bla-bla-bla'})
always retuns "bitrix24.exceptions.BitrixError: User ID can't be empty"
All other methods like post new tasks or seaching by fields in client cards work like charm.
Any advice?

Problem with crm.deal.productrows.set

Hello! I use this type of code to change product rows in a deal:

bx24.callMethod( "crm.deal.productrows.set", id = 1, rows= [{"PRODUCT_ID": 3, "PRICE": 100.00, "QUANTITY": 4}, {"PRODUCT_ID": 3, "PRICE": 200.00, "QUANTITY": 4}])

But it seems that it only deletes product rows because crm.deal.productrows.get returns nothing.

What am I doing wrong?

unsupported operand type(s) for +: 'dict' and 'dict'

Hi. I tried to use tasks.task.list method? but i got this error. Traceback:

In [7]: get_task_list(btx24)                                                                                                                                                                                                                                   
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-9e55fd6134a9> in <module>
----> 1 get_task_list(btx24)

~/projects/bitrix_plus_backend/server/apps/bitrix_fetcher/helpers/tasks.py in get_task_list(bitrix_instanse)
      7 
      8 def get_task_list(bitrix_instanse):
----> 9     return bitrix_instanse.callMethod('tasks.task.list')

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

~/projects/bitrix_plus_backend/.venv/lib/python3.7/site-packages/bitrix24/bitrix24.py in callMethod(self, method, **params)
    102         if 'next' in r and r['total'] > params['start']:
    103             params['start'] += 50
--> 104             return r['result'] + self.callMethod(method, **params)
    105         return r['result']

TypeError: unsupported operand type(s) for +: 'dict' and 'dict'

how can upload file in crm.deal.update png?

I need update deal and upload file (png)?

For php

$base64 = base64_encode(file_get_contents('/dir/data/name_file.pdf'));
$DEAL_ID = 1;

CRest::call('crm.deal.update',
   [
      'id' => $DEAL_ID,
      'fields' => [
         // Upload one file
         "UF_CRM_1234567890" => [
            'fileData' => ["name_file.pdf", $base64]
         ],
         // Upload multiple files
         "UF_CRM_1234567890" => [
            [
               'fileData' => ["file-1.pdf", $base64]
            ],
            [
                'fileData' => ["file-2.pdf", $base64]
            ]
         ],
      ],
      'params' => [
         "REGISTER_SONET_EVENT" => "Y"
      ]
   ]
);

I add


encoded = base64.b64encode(open("3658.png", "rb").read())
  bx24.callMethod("crm.deal.update", id=3658, fields={ "TITLE": 'new3 name', "UF_CRM_1604413825641":  encoded  }, params={ "REGISTER_SONET_EVENT": "Y" });

GET method is always used

https://github.com/akopkesheshyan/bitrix24-python-rest/blob/master/bitrix24/bitrix24.py#L87
Let's say I'm calling crm.deal.add. method.rsplit('.', 1)[0] will compute to crm.deal.

Looks like this is not breaking stuff, since Bitrix accepts GET requests even for methods like crm.deal.add and crm.deal.productrows.set.

My suggestions:
A: Embrace it. Always use GET for all methods since it works. Remove POST-specific code.
B: Fix it. Check method.rsplit('.', 1)[1]. Also add data=p.encode('utf-8') to post version since it doesn't work with cyrillic symbols.

I don't feel competent enough to chose between these options though.

connection contacts and company when adding new deals and companies

Hi, first of all, thank you for making this, really making life easier for all of us trying to use the API. I am trying to create new contacts, companies, and new deals using the python code, however, one problem I am running into is that I can not connect the contacts with the deals or companies, because the "Contact_ID" field is read-only and it is an integer, so I am wondering is there a possible way to connect them through code rather than going to bittrix24 and link them one by one.

crm.deal.update not support?

try:
    bx24.callMethod("crm.deal.update", { 'id': 3794, fields: { "TITLE": 'new name' }, params: { "REGISTER_SONET_EVENT": "Y" } });
except BitrixError as message:
    print(message)

NameError: name 'fields' is not defined

disk.folder.uploadfile

how to send a file with the disk.folder.uploadfile method

the file is stored in the same folder as the python script.

special emphasis on how I should put the "fileContent" section

crm deal with products

Hi,

I was trying to get a deal list with their products names and prices.
I can get the product list for one ID. ('crm.deal.productrows.get')

Is there anyway to get a list of every deal (ID) with their products?

thanks

Query Limit Exceeded error.

When I try to send super long array of 1000+ string 7 symbols each, I get
File "/home/haska/PycharmProjects/parser_test/venv/lib/python3.8/site-packages/bitrix24/bitrix24.py", line 93, in callMethod if r['error'] not in 'QUERY_LIMIT_EXCEEDED': UnboundLocalError: local variable 'r' referenced before assignment
When I send the same array using php curl, it sends successfully

crm.activity.add problem on "START_TIME" and "STOP_TIME"

the method call asks me for the START_TIME field.

The date is structured as "2021-04-05T14: 00: 00-00: 00" which is the way indicated by the REST api, however when executing it, the activity arrives but not its start date or its deadline.

Clarify that the date is formatted as str

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.