{ "info": { "author": "Dmitrii Lazukov", "author_email": "dmitriilazukov@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "# bx24-orm\r\n\u041e\u0431\u0435\u0440\u0442\u043a\u0430 \u0434\u043b\u044f [Bitrix24 API](https://dev.1c-bitrix.ru/rest_help/).\r\n\r\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e:\r\n\r\n```\r\nimport requests\r\n\r\ntoken = get_token_function() # get your Bitrix24 token\r\n\r\n# prepare your parameters\r\nparams = {\r\n 'id': lead_id,\r\n 'auth': token\r\n}\r\n\r\nreponse = requests.get(your_domain_url+'crm.lead.get', params)\r\n\r\n# check if request is OK\r\nif response.status_code < 300:\r\n result = response.json()['result']\r\nelse:\r\n handle_errors(response)\r\n```\r\n\r\n\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:\r\n\r\n```\r\nfrom bx24_orm.entity.crm import BxLead\r\nfrom bx24_orm.exceptions.code_exceptions import BxException\r\n\r\ntry:\r\n result = BxLead.get(lead_id)\r\nexcept BxException as ex:\r\n handle_error(ex) # your handling code\r\n```\r\n\r\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0427\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442:\r\n\r\n```\r\npip install bx24-orm\r\n```\r\n\r\n# \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b\r\n\r\n1. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 `bx24_settings.py`. \r\n \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\r\n ```pythonstub\r\n TOKEN_STORAGE_FILE_PATH = 'bx24_tokens' # \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\r\n DEFAULT_DOMAIN = '{\u0412\u0430\u0448 \u0434\u043e\u043c\u0435\u043d 3-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f}'\r\n DEFAULT_TRANSPORT = 'json' # xml \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f\r\n BX24_DOMAIN_SETTINGS = {\r\n '{\u0434\u043e\u043c\u0435\u043d 3-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f}': {\r\n 'client_id': '{\u0432\u0430\u0448_client_id}',\r\n 'client_secret': '{\u0432\u0430\u0448_client_secret}'\r\n }\r\n }\r\n ```\r\n2. \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f:\r\n `BX24_SETTINGS_MODULE`\r\n3. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438:\r\n\r\n `> bx24_cmd get_tokens -c {\u0432\u0430\u0448 client_id} -s {\u0432\u0430\u0448 client_secret} -d {\u0432\u0430\u0448 \u0434\u043e\u043c\u0435\u043d 3-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0432 \u0431\u0438\u0442\u0440\u0438\u043a\u0441}`\r\n\r\n \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435\u0441\u044c \u0432 \u0432\u0430\u0448\u0435\u043c Bitrix24. \u0418 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 code \u0438\u0437 url \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c.\r\n\r\n4. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f python \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:\r\n\r\n ```\r\n from bx24_orm.core import token_storage\r\n token_storage.save_token('\u0432\u0430\u0448 \u0434\u043e\u043c\u0435\u043d 3-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f', 'access_token', 'refresh_token')\r\n ```\r\n5. \u0413\u043e\u0442\u043e\u0432\u043e! \u041f\u0430\u043a\u0435\u0442 \u0433\u043e\u0442\u043e\u0432 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e!\r\n\r\n# \u041a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439\r\n\r\n```pythonstub\r\nfrom bx24_orm.enitiy.crm import BxDeal, BxLead, BxCompany, BxField\r\n\r\n\r\nclass Deal(BxDeal):\r\n custom_field = BxField('UF_CRM_1539088441')\r\n\r\n\r\nclass Lead(BxLead):\r\n custom_field = BxField('UF_CRM_1539088367')\r\n\r\n\r\nclass Company(BxCompany):\r\n custom_field = BxField('UF_CRM_1539088478')\r\n```\r\n__\u0421\u0442\u043e\u0438\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c:__\r\n \u0414\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043e\u043d\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0442 \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c.\r\n \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d, \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:\r\n ```pythonstub\r\n lead = Lead.get(1)\r\n new_phone = lead.phone()\r\n new_phone[0]['VALUE'] = 'NEW_VALUE'\r\n lead.phone = new_phone\r\n lead.save() \r\n```\r\n\r\n# \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\r\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u0442\u043e \u043d\u0435 \u0441\u0442\u0435\u0441\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u0435 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443: dmitriilazukov@gmail.com\r\n\r\n\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f Pull Request-\u044b.\r\n\r\n\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dmitriilazukov/bx24_orm", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bx24-orm", "package_url": "https://pypi.org/project/bx24-orm/", "platform": "", "project_url": "https://pypi.org/project/bx24-orm/", "project_urls": { "Homepage": "https://github.com/dmitriilazukov/bx24_orm" }, "release_url": "https://pypi.org/project/bx24-orm/0.0.3/", "requires_dist": [ "requests", "six", "python-dateutil" ], "requires_python": "", "summary": "Easy to use Django-styled API wrapper for Bitrix 24", "version": "0.0.3" }, "last_serial": 4624616, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "081cd7a6f5835a39b7aa8ecb7bd34b6f", "sha256": "cad7eec3b433827fbe85e14977fcdc67f0119adaaeb626456ae5fae2bcfd67a8" }, "downloads": -1, "filename": "bx24_orm-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "081cd7a6f5835a39b7aa8ecb7bd34b6f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23588, "upload_time": "2018-12-21T08:26:28", "url": "https://files.pythonhosted.org/packages/88/59/9cd4705dc6e2e93a251fd52982c0fc272e65004b02302146148e5c422883/bx24_orm-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "555004af5d995d0ec0be7eb159a6b09b", "sha256": "a642962502dbeb4517abb706322c098db848761fea705c83236ee643bee60652" }, "downloads": -1, "filename": "bx24_orm-0.0.1.tar.gz", "has_sig": false, "md5_digest": "555004af5d995d0ec0be7eb159a6b09b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17204, "upload_time": "2018-12-21T08:26:30", "url": "https://files.pythonhosted.org/packages/14/59/f477e4e0a655cc0fe2ea38c957ee979666d436a4f7fb7d2f0b1b3e3ba0a3/bx24_orm-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4cf2268e6d9591e596058b46b76d6833", "sha256": "00c4968bd790a95729ec36a42dd448e9e940547c721d6484e5e33819b8445a21" }, "downloads": -1, "filename": "bx24_orm-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "4cf2268e6d9591e596058b46b76d6833", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25325, "upload_time": "2018-12-21T10:59:41", "url": "https://files.pythonhosted.org/packages/a7/ca/3b5cffc6d18c5afb5d7f7fe97d3a4c76e8a4dd5f01319e3fcb2f19bc7990/bx24_orm-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04624ed2de3e2527246f7c20f05fc165", "sha256": "04ebc461aba814003b5c0323247ad95c9a490d332088e9348eb5d47ddbbf7586" }, "downloads": -1, "filename": "bx24_orm-0.0.2.tar.gz", "has_sig": false, "md5_digest": "04624ed2de3e2527246f7c20f05fc165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19224, "upload_time": "2018-12-21T10:59:43", "url": "https://files.pythonhosted.org/packages/15/6d/b5f4d9f4adc0114529d1fcd9d46a9a7082bfc55452b769382da7d8638f6a/bx24_orm-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "72a4d1db701f1e9c526c3dd88dd1cbf6", "sha256": "7932056b2b0ddece1d544f2138dbb6f44e8816014c8f657f61bedab93bcb9332" }, "downloads": -1, "filename": "bx24_orm-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "72a4d1db701f1e9c526c3dd88dd1cbf6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25322, "upload_time": "2018-12-21T11:03:18", "url": "https://files.pythonhosted.org/packages/3a/f6/c4d7d318d06bd62990e92fa519f4a389c1b091dcd6fb4dd8a7cb661aadc2/bx24_orm-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01f8887ae715d65fa47853a3b113e203", "sha256": "84c787e515b9878353812bd5bbbaab864a091df01e64fd608ad1aa0c24275b3a" }, "downloads": -1, "filename": "bx24_orm-0.0.3.tar.gz", "has_sig": false, "md5_digest": "01f8887ae715d65fa47853a3b113e203", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19207, "upload_time": "2018-12-21T11:03:19", "url": "https://files.pythonhosted.org/packages/9c/2d/f4256a97c88554a3c00a6d4f5d9eca348e2f14665b4bb018c395e089a303/bx24_orm-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "72a4d1db701f1e9c526c3dd88dd1cbf6", "sha256": "7932056b2b0ddece1d544f2138dbb6f44e8816014c8f657f61bedab93bcb9332" }, "downloads": -1, "filename": "bx24_orm-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "72a4d1db701f1e9c526c3dd88dd1cbf6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25322, "upload_time": "2018-12-21T11:03:18", "url": "https://files.pythonhosted.org/packages/3a/f6/c4d7d318d06bd62990e92fa519f4a389c1b091dcd6fb4dd8a7cb661aadc2/bx24_orm-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01f8887ae715d65fa47853a3b113e203", "sha256": "84c787e515b9878353812bd5bbbaab864a091df01e64fd608ad1aa0c24275b3a" }, "downloads": -1, "filename": "bx24_orm-0.0.3.tar.gz", "has_sig": false, "md5_digest": "01f8887ae715d65fa47853a3b113e203", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19207, "upload_time": "2018-12-21T11:03:19", "url": "https://files.pythonhosted.org/packages/9c/2d/f4256a97c88554a3c00a6d4f5d9eca348e2f14665b4bb018c395e089a303/bx24_orm-0.0.3.tar.gz" } ] }