Маркетплейс Битрикс24 Юрий Тушинский Технический директор Битрикс

advertisement
Маркетплейс Битрикс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.
Мы собираем идеи и отзывы:
• Экстранет группа на нашем портале.
• Отдельный портал для разработчиков
маркетплейс.
Денис Донченко
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
Спасибо за внимание!
Вопросы?
Download