250 likes | 1.38k Views
Маркетплейс Битрикс24. Юрий Тушинский Технический директор Битрикс. Маркетплейс Битрикс24. Приложения Встраивание приложения в портал Авторизация, контроль доступа к данным REST API для доступа к данным JavaScript API для приложений. Приложения. Типы приложений:
E N D
Маркетплейс Битрикс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 WebSignature); • приложение проверяет корректность подписи и берет из него ключевые данные метода. • \Bitrix\Socialservices\Bitrix24Signer
Общий формат возврата ошибок • Ошибки возвращают соответствующие HTTP-статусы • Большинство методов возвращают ошибки в унифицированном формате • Большинство (хотя и не все пока, к сожалению) методов поддерживают регистронезависимость параметров. • 200 OK - запрос отработал правильно • 400 BadRequest - неверные данные запроса • 401 Unauthorized - неверные авторизационные данные • 402 PaymentRequired - зарезервировано, пока не используется • 403 Forbidden - авторизационные данные верные, но пользователю запрещен доступ к запрошенному действию (пока возвращается только в базовых методах, в entity.* и department.*, остальные возвращают 400 BadRequest) • 404 NotFound - запрошенное действие не найдено • 500 InternalServerError - внутренняя ошибка сервера
Новые методы REST • получение информации о приложении (app.info) • методы работы с событиями (events, event.bind, event.unbind) • множество новых методов по работе с сущностями и счетами CRM • методы по работе с группами соцсети • методы по обеспечению административных операций над задачами (методы прямых действий над задачами, без учета бизнес-логики). • методы по работе с календарями и событиями
oAuth • Авторизация необходима только для приложений третьего типа. Приложения первого и второго типа получают авторизацию при подключении js-библиотеки, а также, в данных POST-запроса при открытии приложения. • Общий порядок работы с OAuth при создании приложений для Битрикс24: • регистрируется своё приложение в Маркетплейсе Битрикс24; • приложением запрашиваются с портала ключи; • затем открывает браузер на авторизацию на портале; • портал после авторизации перенаправляет браузер на зарегистрированный приложением URL; • приложение запрашивает из портала финальный ключ; • подписываются полученным ключом все запросы к Rest API. • Различные способы авторизации (для десктопных приложений, для тиражных решений и т.д.). • http://localhost:7000 – порт для десктопных приложений. • Возможность продления авторизации (> месяца).
Планы • Новые события. • Новые методы – работа с файлами и комментариями. • Взаимодействие между приложениями, доступ к чужому хранилищу. • Продажи на запад. • Ограничение доступа к модулю сотрудникам. • Приложения для мобильной Битрикс24. • Мы собираем идеи и отзывы: • Экстранет группа на нашем портале. • Отдельный портал для разработчиков маркетплейс. Денис Донченко dd@1c-bitrix.ru
МаркетплейсБитрикс24 • Дата запуска: 20 июня 2013 • Авторов: 58 • Приложений всего: 169 • В каталоге: 58 • Платных приложений: 3 • Установок: 16978
С чего начать • http://dev.1c-bitrix.ru/rest_help/ • http://www.bitrix24.ru/marketplace/?app=bitrix.restapi
Спасибо за внимание! Вопросы?