битрикс 24 локальное приложение
Создание приложения для Bitrix24 с нуля
Для расширения функциональности Bitrix24 удобно использовать приложения. В данной статье описано создание с нуля локального serverless приложения.
Для установки нашего приложения нам понадобится собственно портал bitrix24, в котором мы обладаем правами администратора или правом установки и редактирования приложений.
Если такого портала нет — создать его можно здесь.
Заполняем следующие поля: | Название поля | Значение |
---|---|---|
Название приложения* | exampleApp | Или любое другое |
Russian (ru) | Пример приложения | Также можно заполнить значения для других нужных языков |
Пользователи (user) | отмечаем галочкой | Сейчас нам понадобится только это разрешения, но в дальнейшем разрешения для приложения можно будет корректировать |
Здесь нам нужно будет остановится, так как добавлять пока нечего. Оставим вкладку браузера открытой и приступим к созданию нашего приложения.
Официальная javascript-библиотека
Создадим папку с произвольным названием и в ней единственный пока файл index.html со следующим содержанием (исходный код):
Помещаем файл index.html в zip-архив и указываем этот архив в качестве значения поля Загрузите архив с вашим приложением (zip)* в диалоге создания приложения.
Затем нажимаем кнопку «Сохранить»
Посмотрим, что у нас получилось.
Кликаем по Перейти к приложению и видим… пустое место на месте нашего приложения.
Все необходимое для нас на данном этапе находится сейчас в консоли разработчика.
Мы видим, что наше приложение успешно получило данные необходимые для авторизации.
Официальная javascript-библиотека c promise
Использование callback-функций имеет свои преимущества, но не всем нравится или не всегда подходит к ситуации.
Поэтому попробуем получить тот же результат в promise-стиле. Для этого изменим наш index.html (исходный код)
Опять архивируем, опять обновляем наше приложение, опять смотрим, опять все работает.
Инструменты разработки
В папке нашего проекта инициализируем npm:
Установим необходимые пакеты:
Состояние проекта после всех изменений можно посмотреть здесь.
Создадим в корне нашего проекта файл server.js
Создадим папки src и public
В папку public перенесем index.html и изменим его содержимое на:
В папке src создадим файлы
Если package.json еще не создан, выполним:
Добавим скрипты в package.json :
Далее так как и команда start и команда watch не заканчиваются, их нужно запускать параллельно. Для этого в двух командных строках запускаем
Завершим настройку среды разработки редактированием нашего приложения в Bitrix24.
Перейдем в диалог редактирования нашего приложения и укажем в поле
Укажите ссылку* значение http://127.0.0.1:3000/
Перейдите к просмотру вашего приложения:
Вы должны увидеть приветствие с именем текущего пользователя:
Если использовать официальную библиотеку, то отличаться будут только два файла:
Итоговый код проекта для использования официальной библиотеки здесь.
Ознакомиться со всеми возможными методами и возможностями API можно здесь.
Исходный код можно увидеть здесь.
И последнее замечание. Описанные выше способы и методы не являются набором лучших практик. Это скорее предложение к конструктивному обсуждению.
UPD: желающих высказаться о 1С-Битрикс или Битрикс24 прошу сделать небольшое интеллектуальное усилие и осознать, что статья не о Битрикс24 и совсем не о 1С-Битрикс.
Это если в Питере прохожий объясняет другому, как пройти к Петропавловской крепости и тут третий вмешивается с репликой:
«Да тиран был ваш Петр I. Тиран и деспот. И усы у него дурацкие».
Если есть конструктивные замечания к коду в СТАТЬЕ или к подходам или к используемым паттернам — добро пожаловать.
На прошлой неделе мы начали рассказывать о том, как разрабатываются приложения для Битрикс24. В первом выпуске мы определили, с чего начинать разработку, а также описали основные задачи, выполняемые приложением, и данные, которые будут использоваться для этого. Если вы не читали первую часть, рекомендуем начать именно с нее, чтобы у вас была полная картина разработки.
Начинаем разработку
Схема 1. Установка приложения
Сохраняем в лог запрос с портала
Пробуем получить ранее сохраненные о портале данные
Есть ли запись о портале?
фиксируем факт установки в логах
формируем поля для новой записи
фиксируем в логах значения полей
добавляем новую запись
фиксируем в логах результат добавления
формируем запрос для подписки на событие OnAppUninstall
отсылаем запрос на портал
фиксируем в логах запрос и результат выполнения
фиксируем факт обновления в логах
формируем поля для обновления записи
фиксируем в логах значения полей
обновляем старую запись
фиксируем в логах результат обновления
формируем запрос на текущий список наших подписок на события
отсылаем запрос на портал
фиксируем в логах запрос и результат выполнения
инициализируем массив под батч-запрос
собираем в массив запросы на удаление старой подписки
если массив не пустой, отправляем запрос на портал
фиксируем в логах запрос и результат выполнения
формируем запрос для новой подписки на событие OnAppUninstall
отсылаем запрос на портал
фиксируем в логах запрос и результат выполнения
Выводим страницу пользователю
подключаем js-библиотеку портала
Я расписал всю логику без какой-либо оптимизации. Некоторые авторы так и рекомендуют делать: вначале писать все подряд, добиваться рабочего кода, а уж только затем приступать к оптимизации. Кажется, Фаулер говорил, что нельзя одновременно писать код и по ходу дела оптимизировать, нужно разделять на два этапа. Теперь же, глядя на то, что у нас получилось, можно заметить, что у нас один, по крайней мере, код выполняется в обеих ветках условия, а именно подписка на событие. Что ж, можно его вынести за рамки условия и удалить из обеих веток. Однако, в действительности алгоритм будет куда сложнее, поскольку в этом автор проживает в сказочном мире, где все всегда заканчивается хорошо. К сожалению, он в этом не одинок. Для начала создадим переменную errors и проинициализируем массивом.
Вопрос об обработке ошибок настолько важен, насколько часто упускается из вида. Можем ли мы сказать порталу, что установка завершена, если нам не удастся подписаться на события или сохранить запись о портале? Вероятно, ничего уж такого критичного в плане основной задачи приложения не произойдет, мы лишь не сможем потом определить факт обновления и не сможем почистить таблицы от данных портала, на котором приложение было удалено. И все-таки факт того, что написано кривовато, привяжется навсегда к приложению в наших головах, повысит уровень адреналина, снизит стрессоустойчивость. Короче, самим же хуже будет. А потому давайте решать, что завершать установку при наличии подобных ошибок нельзя ни в коем случае.
Схема 2. Вторая версия кода (конкретные действия спрятаны в вызовы функций):
Сохраняем в лог запрос с портала
Пробуем получить ранее сохраненные о портале данные
Есть ли запись о портале?
фиксируем факт установки приложения в логах
фиксируем факт обновления в логах
Выводим страницу пользователю
есть ли сообщение об ошибке?
подключаем js-библиотеку портала
Думаю, что все понятно, кроме вызовов createUserMessage() и rollBackIntstall().
Теперь по второму методу. С ним попроще: если мы зафиксировали у себя данные о портале (добавили или обновили), а ошибка произошла на этапе событий, то очевидно нам следует вернуть назад все, как было. Отсюда возникает задача запоминать выполненные действия и исходные данные. Либо, если все действия были связаны с базой данных, использовать транзакции.
Схема 3. Третья версия:
Сохраняем в лог запрос с портала
Пробуем получить ранее сохраненные о портале данные
Есть ли запись о портале?
фиксируем факт установки/обновления в логах
Выводим страницу пользователю
есть ли сообщение об ошибке?
подключаем js-библиотеку портала
Логика установки приложения теперь не вызывает вопросов. Но вызывает вопрос логирование. В коде указано, что мы логируем сам запрос с портала. Вот он:
здесь (не удивляйтесь только):
А я их, вроде как, рекомендовал шифровать при сохранении в базу. Если так рассудить, то нам и логировать-то его не нужно, поскольку все, что в нем содержится нам итак будет известно, разве что язык. В логи всегда попадет либо факт установки, либо ошибки при установке. Но в действительности запрос может приходить и не с портала вовсе, а из хакерского приложения. В таком случае зачем его вообще логировать? И по этом размышлении становится понятно, что непонятно, как приложение вообще защищено от левых запросов. В результате наш список действий дополняется еще одним пунктом:
17. Проверка валидности запроса извне.
В данном случае (при установке приложения) мы так и так делаем запрос на портал для получения дополнительной информации, вызывая app.info с переданным нам access_token (AUTH_ID). Какие возникают варианты ответа:
Причиной первого может быть формирование неверного УРЛ к rest-у портала, например, когда кто-то стукнулся на страницу установки напрямую и никакого домена в запросе нет или он неверный. Второй вариант. Все запросы в портал приложение должно, по-хорошему, не только выполнять через защищенное соединение (по SSL), но и с проверкой сертификата сервера, не допуская самоподписанные. При пустом теле ответа можно проверить код ошибки (http status code ответа), и, если до сервера достучаться не удалось именно из-за неверного сертификата, то об этом необходимо сообщить пользователю. Битрикс24 существует как облачный, так и коробочный, и здесь мы имеем дело, стало быть, с коробкой, размещенной на собственном сервере владельца.
На этом с установкой, пожалуй, все. Но на примере подписки хотелось бы чуть коснуться rest-запросов портала. REST Битрикс24 довольно неплохой. Да, порою требуемые для передачи параметры удивляют. Например, где-то регистр ключей имеет значение, а где-то не имеет. А есть еще и запросы, в которых все данные имеют соответствующие ключи, но, тем не менее, переданы должны быть в нужной очередности. Однако, в батч-запросах можно, формируя последовательность команд, из одной обращаться к данным, полученным из предыдущей. Это круто. Рассмотрим удаление подписки на события, оставшейся от прежней версии приложения. Для этого нам нужно получить наши старые обработчики, делаем запрос (команда, параметры):
получаем в результате что-то вроде:
Портал возвращает все прежние подписки нашего приложения. При переходе с версии на версию у нас меняется УРЛ, теперь он должен вместо v1 должен содержать v2.
if array res.result
foreach res.result as item
if not empty batch
if not empty res.result_errors
Как я уже сказал, я не вникаю в архитектуру приложения, и имена вызываемых функций здесь служат лишь для указания, какое действие выполняется в данный момент и какие данные оно использует. В этом коде мы точно уверены, что наши подписки никогда не превысят ограничения батч-запросов в 50 команд, но там, где это неочевидно, следует вставлять проверку. При этом нужно учитывать, что размер команд вместе с их параметрами (представьте обновление 5000 компаний или счетов за один раз) может составлять в байтах довольно большое число, так что не стоит собирать все команды в один массив, потом резать его по 50 штук, и затем отправлять эти нарезки на выполнение. Fatal error, cannot allocate memory могут быть запросто получены. Алгоритм обработки в данном случае должен быть иным. Пример в псевдокоде:
while row = getSomething()
if count batch equal 50
Ну, теперь и с установкой, и с запросами точно все.
Доставка полезной информации от экспертов по Битрикс24!
Подпишитесь, и раз в неделю у вас на почте будет подборка полезных советов и обзоров про Битрикс24
Битрикс24 для Windows и Mac
Битрикс24 на вашем рабочем столе
Установите приложение на компьютер, чтобы работать над проектами и задачами, общаться с коллегами в чатах и по видеосвязи.
Реагируйте на комментарии к задачам и сообщения коллег, звоните им прямо из чата в Битрикс24 и на номера мобильных телефонов, обменивайтесь файлами на облачном Диске.
Общайтесь мгновенно
Общайтесь в едином мессенджере для всей компании: переписывайтесь, делайте видеозвонки, создавайте видеоконференции с подрядчиками и клиентами.
Вы всегда будете знать о событиях с вашим участием в новостной ленте, лайках и комментариях к ним, о поставленных задачах и ходе их выполнения.
Видеозвонки HD до 48 человек
Находите коллег в списке, создавайте чаты и звоните им по аудио- или видеосвязи.
Доступны звонки один на один и групповые встречи до 48 человек. Длительность звонков не ограничена даже в бесплатном тарифе.
Видеоконференции HD до 48 человек
Собрать видеоконференцию просто — позвоните всем участникам группового чата или создайте новый чат для участников звонка.
Клиенты и подрядчики могут подключаться к звонку по прямой ссылке, без регистрации в Битрикс24.
Битрикс24.Диск
Вам не нужно больше пересылать коллегам новые версии файлов. Диск незаметно синхронизирует файлы на вашем компьютере с Битрикс24 в «облаке». У вашей команды всегда будут актуальные версии документов.
В приложении вы увидите историю загрузок, дату последней синхронизации, доступное место в «облаке».
Пользуйтесь всеми инструментами Битрикс24
Работайте эффективно, ведь все инструменты — у вас под рукой. Отслеживайте сделки в CRM, заводите бизнес-процессы, будьте в курсе всех событий компании.
Не теряйте заявки и рабочие документы, ставьте встречи в календаре и проводите планерки. Все это доступно из единого приложения!
Мобильное приложение
Установите на свой смартфон Мобильное приложение.
Мобильная версия Битрикс24 дает те же возможности, что и компьютерная. Вы всегда остаетесь в курсе событий и продолжаете выполнять свою работу даже вне офиса.
Данный веб-сайт использует аналитические и технические cookie-файлы. Аналитические cookie-файлы используются для того, чтобы определить из какой страны или с какой веб-страницы пользователь перешел на веб-сайт, а также какие действия он производит на веб-сайте Технические cookie-файлы необходимые для надлежащего функционирования некоторых функций данного веб-сайта, таких как возможность использования чата в реальном времени. Отключение этих cookies-файлы приведет к отключению доступа к этим функциям и ухудшению качества работы веб-сайта.
Файлы cookie данных типов могут быть включены или отключены в этом плагине.
Приложения Битрикс24
Добавьте новые возможности в свой Битрикс24. В магазине приложений вы найдете готовые шаблоны для лендингов, решения для телефонии, банковских операций, платежных систем и чат-ботов.
В Битрикс24 можно работать даже без ноутбука и офисного компьютера. В этом вам поможет мобильное приложение Битрикс24, которое доступно для iPhone, iPad и Android-устройств.
Установите приложение на компьютер, чтобы работать над проектами и задачами, общаться с коллегами в чатах и по видеосвязи, обрабатывать заявки клиентов. Полная версия Битрикс24 всегда будет доступна на вашем рабочем столе.
Данный веб-сайт использует аналитические и технические cookie-файлы. Аналитические cookie-файлы используются для того, чтобы определить из какой страны или с какой веб-страницы пользователь перешел на веб-сайт, а также какие действия он производит на веб-сайте Технические cookie-файлы необходимые для надлежащего функционирования некоторых функций данного веб-сайта, таких как возможность использования чата в реальном времени. Отключение этих cookies-файлы приведет к отключению доступа к этим функциям и ухудшению качества работы веб-сайта.
Файлы cookie данных типов могут быть включены или отключены в этом плагине.
Приложения Битрикс24: что это, примеры, как устанавливать
Если вдруг вам не хватает стандартных возможностей «Битрикс24», добавьте новые функции с помощью мини-программ. Сделайте хорошую платформу еще лучше.
Что такое приложения Битрикс24
Битрикс24 может похвастать впечатляющим набором возможностей. Система совмещает в себе CRM, конструктор сайтов и сервис для управления проектами. В рамках одной платформы пользователь получает все самое необходимое для организации продаж через интернет.
Но, как известно, совершенству нет предела. Всегда найдется функция, которой вам может не хватать. Ведь у каждого предпринимателя свои взгляды на рабочие процессы, да и сферы бизнеса бывают очень специфическими.
В таких ситуациях могут помочь приложения Битрикс24. Это небольшие модули, которые устанавливаются в систему и расширяют ее функциональность. Они предоставляют пользователю почти неограниченный потенциал для улучшения и персонализации платформы.
В Битрикс24 есть встроенный каталог приложений — «Маркет». В нем можно найти и установить сотни самых разных мини-программ. В основном эти приложения позволяют автоматизировать однотипные действия, добавляют в интерфейс новые инструменты или открывают возможность для интеграций Bitrix24 с другими сервисами. Большинство таких модулей работает только в полной версии Битрикс24, но некоторые совместимы и с мобильной.
Список доступных приложений регулярно пополняют как разработчики Битрикс24, так и сторонние девелоперы. При необходимости вы также можете разработать и добавить свою программу в каталог.
Цены на приложения Битрикс24
Приложения доступны только пользователям платных тарифов Битрикс24. То есть, чтобы получить доступ к каталогу, сначала надо оформить подписку. В остальном схема монетизации напоминает подход Google Play и AppStore: есть «бесплатные», условно-бесплатные и платные приложения.
Если вы используете бесплатный план Битрикс24, но хотите попробовать приложения, можете оформить пробную подписку на «Маркет». Она бесплатно открывает полный доступ к приложением на 30 дней.
Примеры приложений Bitrix24
Mind Map. После установки этого приложения в разделе «Группы» появится новая вкладка, которая позволяет создавать ментальные карты. Так называют графические схемы, в виде которых удобно представлять сложные идеи, проекты или рабочие процессы — чтобы они стали понятнее. На изображения можно быстро добавлять значки сотрудников и задач, которые уже есть в системе, а также новые объекты и связи между ними. Ментальные карты заметно упрощают работу с информацией.
«База знаний». Это приложение представляет собой более удобную альтернативу встроенной в Битрикс24 Wiki. С его помощью можно вести, как следует из названия, корпоративную базу знаний: обучающие материалы и прочие внутренние документы. Программа позволяет создавать статьи и структурировать их с помощью виртуальных папок. Сотрудники могут заниматься этим совместно. В приложение встроен функциональный редактор с богатыми возможностями для форматирования статей. В текст можно вставлять изображения и видео.
«Проверка телефонов». При работе с клиентами из разных часовых поясов можно случайно позвонить в нерабочее время и доставить тем самым неудобства. Эта программа избавит от множества подобных ситуаций. Она поможет быстро проверять часовые пояса собеседников по номерам телефонов. Ввели номер перед звонком — узнали текущее время абонента. По очевидным причинам, приложение работает только со стационарными федеральными номерами. Да, мобильные отследить не выйдет.
«Дни рождения сотрудников». Если вы заботитесь о корпоративной культуре, а также лояльности клиентов и сотрудников, вам пригодится эта программа. С ней вы перестанете забывать о днях рождения тех и других. Приложение отображает памятные даты на календаре и уведомляет о наступающих праздниках. Правда, даты рождения обязательно должны быть указаны в карточках соответствующих людей. Иначе они не появятся в календаре.
ApiX-Drive. С помощью этой программы вы сможете создавать интеграции Битрикс24 c сотнями других сервисов. Быстро и без единой строчки кода.
Приведем несколько примеров интеграций, которые можно создавать после установки ApiX-Drive.
Чтобы создать интеграцию, сначала нужно обязательно установить приложение. После этого остается зарегистрироваться на сайте одноименного сервиса ApiX-Drive и настроить связи между Битрикс24 и выбранными системами. Пользователю помогают встроенные подсказки, а при необходимости можно почитать подробные инструкции в справке ApiX-Drive. Создание интеграции занимает около 15 минут.
Как устанавливать приложения Битрикс24
Установка приложения занимает пару минут и не требует каких-либо технических знаний. Но эта возможность доступна только пользователю с правами администратора.
Чтобы попасть в каталог, нужно открыть личный кабинет Bitrix24 и нажать на боковой панели «Еще» — «Маркет». По умолчанию откроется вкладка «Все приложения». На ней можно найти все программы, доступные для установки.
Для навигации по каталогу можно использовать список категорий слева и форму поиска/фильтрации в верхней части окна. Форма позволяет учитывать при поиске не только категорию программ, но также их стоимость, количество установок и совместимость с мобильной версией Битрикс24.
Чтобы установить выбранное приложение, нужно кликнуть рядом с ним «Посмотреть», а затем «Установить».
Если программа потребует разрешения для доступа к тем или иным данным, надо будет отметить все запросы и повторно нажать «Установить».
Кроме того, на странице каждого приложения есть вкладка «Установка». Здесь могут быть перечислены дополнительные инструкции, необходимые для инсталляции или запуска программы.
Как удалять приложения Битрикс24
Если установленное приложение станет ненужным, вы сможете в любой момент его удалить.
Для этого сначала необходимо нажать на боковой панели «Еще» — «Маркет». Когда появится каталог, надо перейти на вкладку «Установленные». Здесь отображаются ранее загруженные программы.
Чтобы удалить выбранное приложение, нужно нажать рядом с ним «Удалить». После этого может понадобиться подтвердить удаление настроек и данных программы.
После удаления программа останется в списке «Установленные», чтобы при необходимости вы могли быстро найти и установить ее повторно. Для этого нужно снова нажать на кнопку «Установить».
Разработка приложений Битрикс24
Разработать приложение может любой желающий. Если программа пройдет модерацию, она появится в каталоге.
Есть несколько причин, которые могут подтолкнуть вас на создание своей программы для «Маркета». Если ваша компания использует Битрикс24, но сотрудникам не хватает какой-то важной функции в основном интерфейсе и уже готовых приложениях, можете добавить ее с помощью собственной разработки.
Кроме того, «Маркет» дает возможность заработать. Создав приложение, вы можете продавать к нему доступ другим пользователям. Разработчики сами выбирают формат монетизации: продавайте пожизненные лицензии на программы, сдавайте их в аренду по подписке, или зарабатывайте на встроенных покупках. Можете также создавать приложения для других компаний, которые хотят расширить функциональность Битрикс24, под заказ.
Для разработки разрешено использовать любые технологии и языки программирования, совместимые с Bitrix24 API (RESTful API). Вся необходимая документация и обучающие материалы доступны на сайте Битрикс.