{"id":25767129,"url":"https://github.com/vdistortion/bitrix24-library","last_synced_at":"2025-02-26T23:19:11.289Z","repository":{"id":185031320,"uuid":"672891249","full_name":"vdistortion/bitrix24-library","owner":"vdistortion","description":"Promise-обёртка для работы с JavaScript REST API Bitrix24 и набор новых методов","archived":false,"fork":false,"pushed_at":"2024-09-24T17:21:16.000Z","size":144,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-08T16:27:22.149Z","etag":null,"topics":["bitrix24","bx24","library","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vdistortion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-31T11:59:27.000Z","updated_at":"2024-10-03T14:00:34.000Z","dependencies_parsed_at":"2024-10-08T16:27:24.039Z","dependency_job_id":"30114780-ec2d-427d-887a-b1cccba7626c","html_url":"https://github.com/vdistortion/bitrix24-library","commit_stats":null,"previous_names":["astrotrain55/bitrix24-library","vdistortion/bitrix24-library"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdistortion%2Fbitrix24-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdistortion%2Fbitrix24-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdistortion%2Fbitrix24-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdistortion%2Fbitrix24-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdistortion","download_url":"https://codeload.github.com/vdistortion/bitrix24-library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240948120,"owners_count":19883102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitrix24","bx24","library","typescript"],"created_at":"2025-02-26T23:19:10.634Z","updated_at":"2025-02-26T23:19:11.278Z","avatar_url":"https://github.com/vdistortion.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bitrix24-library\n\n[![NPM Version](https://img.shields.io/npm/v/bitrix24-library?style=flat\u0026logo=npm\u0026label=version\u0026color=cb3837)](https://www.npmjs.com/package/bitrix24-library)\n[![NPM Downloads](https://img.shields.io/npm/dw/bitrix24-library?style=flat\u0026logo=npm\u0026color=cb3837)](https://www.npmjs.com/package/bitrix24-library)\n[![GitHub repo size](https://img.shields.io/github/repo-size/vdistortion/bitrix24-library?style=flat\u0026logo=github)](https://github.com/vdistortion/bitrix24-library)\n[![GitHub Repo stars](https://img.shields.io/github/stars/vdistortion/bitrix24-library?style=flat\u0026logo=github)](https://github.com/vdistortion/bitrix24-library)\n[![GitHub Created At](https://img.shields.io/github/created-at/vdistortion/bitrix24-library?style=flat\u0026logo=github)](https://github.com/vdistortion/bitrix24-library)\n\n[![bitrix24-library](docs/bg.jpg)](https://vdistortion.github.io/bitrix24-library/)\n\nPromise-обёртка для работы с JavaScript REST API Bitrix24 и набор новых методов\n\n## Установка и подключение\n\n```sh\nnpm i -S bitrix24-library@latest\n```\n\n```js\nimport Bitrix24 from 'bitrix24-library';\n\nBitrix24.init().then((BX24) =\u003e {\n  console.log(BX24.getAuth());\n\n  const RestCall = BX24.createBatch();\n  RestCall.batch({\n    info: ['app.info'],\n    profile: ['profile'],\n  }).then(console.info);\n});\n```\n\n## Подключение и вызов методов на примере Vue.js\n\n```js\n// main.js\nimport { createApp } from 'vue';\nimport Bitrix24 from 'bitrix24-library';\nimport App from './App.vue';\n\nBitrix24.init().then((BX24) =\u003e {\n  createApp(App).provide('$BX24', BX24).mount('#app');\n});\n```\n\n```html\n\u003cscript lang=\"ts\"\u003e\n  // Options API\n  export default {\n    mounted() {\n      console.info(this.$BX24.getAuth());\n\n      const RestCall = this.$BX24.createBatch();\n      RestCall.batch({\n        info: ['app.info'],\n        profile: ['profile'],\n      }).then(console.info);\n    },\n    inject: ['$BX24'],\n  };\n\u003c/script\u003e\n\n\u003cscript setup lang=\"ts\"\u003e\n  // Composition API\n  import { inject } from 'vue';\n  import type { IBitrix24Library } from 'bitrix24-library';\n\n  const $BX24: IBitrix24Library | undefined = inject('$BX24');\n\n  console.info($BX24.getAuth());\n\n  const RestCall = $BX24.createBatch();\n  RestCall.batch({\n    info: ['app.info'],\n    profile: ['profile'],\n  }).then(console.info);\n\u003c/script\u003e\n```\n\n## Битрикс24\n\n- [Документация по REST API](https://dev.1c-bitrix.ru/rest_help/js_library/)\n\n### Системные функции\n\n- `.init()` — Добавляет в список обработчик события \"библиотека готова к работе\"\n\n- `.install([callback])` — Возможность установить обработчик события \"приложение запускается первый раз для текущего пользователя\". Если в качестве обработчика передана строка, то она считается ссылкой на js-файл, который нужно загрузить и выполнить при срабатывании события\n\n- `.installFinish()` — Функция, сигнализирующая об окончании работы инсталлятора или настройщика приложения\n\n- `.getAuth()` — Получение текущих данных для авторизации через OAuth 2.0\n\n- `.refreshAuth()` — Принудительное обновление ключа авторизации\n\n### Вызов методов REST\n\n- `.callMethod(method[, params])` — Метод вызывает указанный метод REST-сервиса с указанными параметрами\n\n- `.callBatch(calls[, bHaltOnError])` — Пакетное выполнение запросов по несколько элементов (в настоящий момент не более, чем по 50)\n\n- `.callBind(event, handler[, authType[, callback]])` — Интерфейс, регистрирующий новый обработчик события\n\n- `.callUnbind(event, handler[, authType[, callback]])` — Интерфейс, удаляющий зарегистрированный обработчик события\n\n### Настройки приложения\n\n- `.userOption` — Работа с настройками текущего пользователя\n\n- `.appOption` — Работа с общими настройками приложения. Установка значений настроек приложения доступа только пользователям с правом управления приложением (`.isAdmin()`)\n\n### Показ системных диалогов\n\n- `.selectUser()` — Показать стандартный диалог одиночного выбора пользователя\n\n- `.selectUsers()` — Показать стандартный диалог множественного выбора пользователей\n\n- `.selectAccess([value])` — Показать стандартный диалог выбора прав доступа\n\n- `.selectCRM([params])` — Показать стандартный диалог выбора сущности CRM\n\n### Встраивание приложений\n\n- `.placement.info()` — Получение информации о контексте вызова\n\n- `.placement.getInterface()` — Получение информации о js-интерфейсе текущего места встраивания: списке возможных команд и событий\n\n- `.placement.call(command, params)` — Вызов зарегистрированной команды интерфейса\n\n- `.placement.bindEvent(eventName)` — Установка обработчика события интерфейса\n\n### Дополнительные методы\n\n- `.isAdmin()` — Определяет, имеет ли текущий пользователь права на управление приложениями\n\n- `.getLang()` — Возвращает идентификатор языка текущего портала\n\n- `.resizeWindow(width, height)` — Изменяет размер фрейма с приложением\n\n- `.fitWindow()` — Устанавливает размер фрейма с приложением в соответствии с размерами содержимого фрейма\n\n- `.reloadWindow()` — Перезагружает страницу портала с приложением\n\n- `.setTitle(title)` — Устанавливает заголовок страницы\n\n- `.ready()` — Устанавливает обработчик события \"DOM-структура документа готова к работе\"\n\n- `.isReady()` — Флаг \"DOM-структура документа готова к работе\"\n\n- `.proxy(thisObject)` — Аналогична [BX.proxy](https://dev.1c-bitrix.ru/api_help/js_lib/kernel/events/bx_proxy.php)\n\n- `.closeApplication()` — Метод закрывает открытое модальное окно с приложением\n\n- `.getDomain([isOrigin])` — Возвращает адрес портала Битрикс24\n\n- `.openApplication(params)` — Метод открывает приложение\n\n- `.openPath(path[, callback])` — Метод открывает указанный путь внутри портала в слайдере\n\n- `.proxyContext()` — При вызове изнутри прокси-функцию выдаст ссылку на оригинальный контекст выполнения прокси-функции\n\n- `.scrollParentWindow(scroll)` — Метод прокручивает родительское окно\n\n- `.bind(element, eventName, callback)` — Устанавливает функцию callback в качестве обработчика события eventName объекта element, возвращает функцию для отписки `.unbind()` с теми же параметрами\n\n- `.unbind(element, eventName, callback)` — Убирает функцию callback в качестве обработчика события eventName объекта element\n\n- `.getScrollSize()` — Функция возвращает внутренние размеры фрейма приложения\n\n- `.loadScript(script)` — Загружает и выполняет клиентский js-файл\n\n- `.im.callTo(userId[, video])` — Звонок по внутренней связи\n\n- `.im.phoneTo(number)` — Звонок на телефонный номер\n\n- `.im.openMessenger(dialogId)` — Открытие окна мессенджера\n\n- `.im.openHistory(dialogId)` — Открытие окна истории\n\n### Новые методы\n\n- `.createBatch([handlerList[, BatchClass]])` — Создание пакетного выполнения запросов, надстройка над `.callBatch()` ([подробнее](BATCH.md))\n\n- `.openLink(url[, inNewTab])` — Обёртка над методом `.openPath()`, открывает адрес в новой вкладке, если не можем открыть в том же окне или используем метод на телефоне. Чтобы сразу открыть ссылку в новой вкладке, передайте вторым параметром `true`\n\n- `.isMobile()` — [is-mobile](https://www.npmjs.com/package/is-mobile)\n\n## Ссылки\n\n- [vue-bitrix24](https://www.npmjs.com/package/vue-bitrix24)\n- [react-bitrix24](https://www.npmjs.com/package/react-bitrix24)\n- [bitrix24-create-app](https://www.npmjs.com/package/bitrix24-create-app)\n- [bitrix24-stickerpack-app](https://github.com/vdistortion/bitrix24-stickerpack-app)\n\n\u003cdetails\u003e\n  \u003csummary\u003e:imp:\u003c/summary\u003e\n  Если вам не повезло работать с битриксом, надеюсь данная библиотека хоть немного облегчит разработку ¯\\_(ツ)_/¯\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdistortion%2Fbitrix24-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdistortion%2Fbitrix24-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdistortion%2Fbitrix24-library/lists"}