Маркетплейс Битрикс24 Юрий Тушинский Технический директор Битрикс Маркетплейс Битрикс24 • Приложения • Встраивание приложения в портал • Авторизация, контроль доступа к данным • REST API для доступа к данным • JavaScript API для приложений Приложения Типы приложений: • Хостинг у нас в облаке – архив (html, javascript, стили, ресурсы) • Приложение на стороннем сервере – ссылка на приложение (HTML, PHP, …) • Внешнее приложение (использование API) – не имеет собственного интерфейса и пунктов меню Отображение приложения на портале • • Приложение в IFRAME: • Безопасность • Нельзя получить доступ к родительскому окну • Позиционирование от окна iframe и только внутри него Новый модуль oauth – сервер oAuth 2.0 авторизации. Используется как для проброса авторизации внутрь iframe, так и для возможности авторизации на внешних сайтах. JavaScript API Набор функций для снятия ограничений работы в IFRAME: • Изменение работы окна IFRAME: • Вызов нативных интерфейсов: REST API • Новый модуль rest • Методы для работы с данными по http с правами авторизованного пользователя. • POST запросы с JSON в параметрах и JSON возвращается как результат (+xml). • Возможность пакетного выполнения REST API • Набор методов можно расширить при помощи события. Контроль доступа к данным • Любой доступ к данным портала через REST API контролируется. Чтобы начать использовать REST API нужно сначала установить приложение на портал. • При инсталляции приложения (версии) уровень доступа, требуемый приложению, сохраняется локально. • По факту ограничение сводится к набору доступных методов REST-API • Доступ к данным возможен только в правах авторизованного пользователя и с заявленным уровнем приложения при инсталляции. JavaScript API • Доступ к REST API API методы - Реализованы более 180 методов для основных сущностей Битрикс24: - Общие (11) - CRM (93) - Соцсеть (10) - Хранилище (17) - Задачи (25) - Сотрудники и отделы (10) - Календарь (18) Платные приложения • Указывается цена за месяц. Пользователь может оформить подписку на 3, 6 или 12 месяцев. • Возможность создать триалы и демоверсии для платных приложений: • Триал – может быть активирован только один раз, после истечения триала или подписки приложение блокируется. • Демо – может быть активировано много раз, после истечения подписки приложение опять переходит из состояния paid в demo. • Для получения состояния метод app.info: События • Возможность зарегистрировать URL-обработчик, который будет вызываться при возникновении события. • Можно указать в контексте авторизации какого пользователя будет вызван URL-обработчик. • События onAppUninstall, onAppUpdate, onAppPayment, onUserAdd Безопасный вызов методов • Защита критических методов app.info и user.current от подделки результата. • Описание механизма: • при вызове безопасного метода приложение посылает дополнительный параметр state с произвольным значением; • в ответе приходит параметр signature, значение которого представляет собой подпись ключевых данных метода на основе механизма JWS (JSON Web Signature); • приложение проверяет корректность подписи и берет из него ключевые данные метода. • \Bitrix\Socialservices\Bitrix24Signer Общий формат возврата ошибок • • Ошибки возвращают соответствующие HTTP-статусы Большинство методов возвращают ошибки в унифицированном формате • Большинство (хотя и не все пока, к сожалению) методов поддерживают регистронезависимость параметров. 200 OK - запрос отработал правильно 400 Bad Request - неверные данные запроса 401 Unauthorized - неверные авторизационные данные 402 Payment Required - зарезервировано, пока не используется 403 Forbidden - авторизационные данные верные, но пользователю запрещен доступ к запрошенному действию (пока возвращается только в базовых методах, в entity.* и department.*, остальные возвращают 400 Bad Request) 404 Not Found - запрошенное действие не найдено 500 Internal Server Error - внутренняя ошибка сервера Новые методы REST • • • • • получение информации о приложении (app.info) методы работы с событиями (events, event.bind, event.unbind) множество новых методов по работе с сущностями и счетами CRM методы по работе с группами соцсети методы по обеспечению административных операций над задачами (методы прямых действий над задачами, без учета бизнес-логики). • методы по работе с календарями и событиями oAuth • Авторизация необходима только для приложений третьего типа. Приложения первого и второго типа получают авторизацию при подключении js-библиотеки, а также, в данных POST-запроса при открытии приложения. • Общий порядок работы с OAuth при создании приложений для Битрикс24: • регистрируется своё приложение в Маркетплейсе Битрикс24; • приложением запрашиваются с портала ключи; • затем открывает браузер на авторизацию на портале; • портал после авторизации перенаправляет браузер на зарегистрированный приложением URL; • приложение запрашивает из портала финальный ключ; • подписываются полученным ключом все запросы к Rest API. • Различные способы авторизации (для десктопных приложений, для тиражных решений и т.д.). • http://localhost:7000 – порт для десктопных приложений. • Возможность продления авторизации (> месяца). Планы • Новые события. • Новые методы – работа с файлами и комментариями. • Взаимодействие между приложениями, доступ к чужому хранилищу. • Продажи на запад. • Ограничение доступа к модулю сотрудникам. • Приложения для мобильной Битрикс24. Мы собираем идеи и отзывы: • Экстранет группа на нашем портале. • Отдельный портал для разработчиков маркетплейс. Денис Донченко [email protected] Маркетплейс Битрикс24 • • • • • • Дата запуска: 20 июня 2013 Авторов: 58 Приложений всего: 169 В каталоге: 58 Платных приложений: 3 Установок: 16978 С чего начать • http://dev.1c-bitrix.ru/rest_help/ • http://www.bitrix24.ru/marketplace/?app=bitrix.restapi Спасибо за внимание! Вопросы?