SlideShare a Scribd company logo
1 of 25
Download to read offline
API	
  Битрикс24	
  -­‐	
  изнутри,	
  с	
  пристрастием	
  
Сербул	
  Александр	
  
руководитель	
  направления	
  контроля	
  качества	
  
интеграции	
  и	
  внедрений	
  1С-­‐Битрикс	
  
AlexSerbul
Битрикс24	
  –	
  с	
  чем	
  будем	
  общаться	
  через	
  API
Рабочие инструменты в «социальном» формате – в облаке	
  
Битрикс	
  –	
  Маркетплейс.	
  С	
  чего	
  все	
  началось.
С 2010 года. Более 1000 решений в каталоге.	
  
Битрикс24	
  –	
  Маркетплейс	
  -­‐	
  развитие
C лета 2013 партнеры и разработчики активно создают приложения.	
  
Scrum + SMS = крепкий сон менеджера обеспечен! ;-)	
  
Битрикс24	
  -­‐	
  Маркетплейс	
  
Установка и запуск приложения в iframe	
  
Битрикс24	
  -­‐	
  Маркетплейс	
  
Объекты	
  в	
  REST	
  API	
  Битрикс24:	
  
	
  
ü  пользователи	
  и	
  их	
  иерархия,	
  структура	
  компании	
  
ü  отправка	
  уведомлений	
  –	
  email,	
  push	
  на	
  моб.	
  устройства,	
  desktop	
  	
  app.	
  
ü  работа	
  с	
  задачами	
  
ü  CRM	
  
ü  календари	
  
ü  работа	
  с	
  абстрактными	
  древовидными	
  данными	
  (инфоблоками)	
  
Битрикс24	
  –	
  REST	
  API	
  
RFC	
  6749	
  -­‐	
  философия	
  на	
  тему	
  редиректов	
  	
  J	
  
Написали	
  свой	
  OAuth2.0	
  веб-­‐сервис	
  на	
  PHP.	
  
	
  
Поддержали	
  самый	
  полный	
  flow	
  –	
  «4.1.	
  AuthorizaDon	
  Code	
  Grant».	
  
	
  
«1.3.1.	
  	
  Authorizaqon	
  Code»	
  –	
  время	
  жизни	
  30	
  сек.	
  
	
  
«3.3.	
  Access	
  Token	
  Scope»	
  –	
  поддерживаем	
  уровни,	
  не	
  мельче	
  модуля	
  
	
  
«6.	
  Refreshing	
  an	
  Access	
  Token»	
  –	
  обновляем	
  Access	
  Token,	
  время	
  жизни	
  –	
  1	
  час	
  
	
  
«7.1.	
  	
  Access	
  Token	
  Types»	
  –	
  простой	
  токен	
  пока	
  (строка),	
  думаем	
  про	
  MAC	
  и	
  подписи	
  
	
  
	
  
	
  
OAuth	
  2.0	
  –	
  детали	
  поддержки	
  протокола	
  
1)  «Внутреннее»	
  –	
  архив	
  html+js+ресурсы	
  
загружается	
  в	
  облако	
  Битрикс24	
  
2)  «Встраиваемое»	
  -­‐	
  через	
  iframe	
  на	
  портале	
  
пользователи;	
  контроллер	
  iframe	
  -­‐	
  на	
  сайте	
  
партнера/разработчика	
  
3)  «Внешнее»	
  -­‐	
  доступ	
  только	
  к	
  API	
  Битрикс24	
  
Типов	
  может	
  быть	
  больше,	
  думаем	
  как	
  их	
  
классифицировать.	
  
	
  
Типы	
  приложений	
  
Все	
  настраивается	
  в	
  «личном	
  кабинете»	
  
разработчика:	
  
	
  
•  URI	
  приложения	
  –	
  для	
  контроля	
  адреса	
  
приложения	
  и	
  iframe	
  
	
  
•  Список	
  прав	
  (scope)	
  –	
  ограничение	
  доступа	
  
приложения	
  к	
  API	
  
	
  
•  Пароль	
  приложения	
  –	
  для	
  получения	
  Access	
  
Token	
  	
  
	
  
	
  
Настройка	
  прав	
  OAuth	
  2.0	
  –	
  Access	
  Token	
  Scope	
  
1.	
  h€ps://my.bitrix24.ru/oauth/authorize/?	
  
client_id=First_APP&	
  
response_type=code&	
  
redirect_uri=	
  h"ps://test.com/bitrix/oauth/oauth_test.php	
  
	
  
2.	
  h€ps://test.com/bitrix/oauth/oauth_test.php?	
  
code=xxxxxxxxxxxxxxxxxxxxxxxxxxx	
  
	
  
3.	
  h€ps://my.bitrix24.ru/oauth/token/?	
  
client_id=First_APP&	
  
grant_type=authorizaqon_code&	
  
client_secret=#secret_key#&	
  
redirect_uri=	
  h"ps://test.com/bitrix/oauth/oauth_test.php	
  &	
  
code=	
  xxxxxxxxxxxxxxxxxxxxxxxxxxx&	
  
scope=user	
  
	
  
4.	
  h€ps://test.com/bitrix/oauth/oauth_test.php?	
  
access_token=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy	
  
	
  
5.	
  h€ps://my.bitrix24.ru/rest/methods.json?	
  
auth=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy&full=true	
  
	
  
{"result":["methods","batch","calendar.event.get",	
  …]}	
  
Алгоритм	
  авторизации	
  -­‐	
  Authorizaqon	
  Code	
  Grant	
  
	
  
h€ps://имя_портала.bitrix24.ru/oauth/token/?	
  
grant_type=authorizaqon_code&	
  
client_id=код_приложения&	
  
client_secret=секретный_код_приложения&	
  
code=код	
  авторизации	
  клиента&	
  
scope=набор_разрешений_приложения&	
  
redirect_uri=URL_приложения	
  
	
  
{	
  
"access_token":"код_авторизации","expires_in":3600,	
  
"scope":"набор_разрешений","refresh_token":"код_обновления_авторизации",	
  
"domain":"имя_портала","member_id":"идентификатор_портала“	
  
}	
  
	
  
h€ps://имя_портала.bitrix24.ru/oauth/token/?	
  
grant_type=refresh_token&	
  
client_id=код_приложения&	
  
client_secret=секретный_код_приложения&	
  
refresh_token=код_обновления_авторизации&	
  
scope=набор_разрешений_приложения&	
  
redirect_uri=URL_приложения	
  
Обновление	
  Access	
  Token	
  
	
  
https://домен_Б24.bitrix24.{ru|en|de}/rest/имя_метода.транспорт?
параметры_метода&
auth=ключ_авторизации
https://my.bitrix24.ru/rest/methods.xml?auth=d161f25928c3184678924ec127edd29a - получить список доступных
методов в формате xml.
https://my.bitrix24.ru/rest/entity.item.get.json?ENTITY=menu&auth=d161f25928c3184678924ec127edd29a -
получить в формате json список всех элементов сущности menu.
{
"result": результат выполнения метода,
"error": ошибка выполнения метода,
"total": общее количество записей в ответе списочного метода,
"next": число, которое нужно послать для получение следующей страницы
данных списочного метода
}
{
"result": массив результатов запросов пакета,
"result_error": массив ошибок запросов пакета,
"result_total": массив количеств записей в ответах списочных методов,
"result_next": массив чисел, возвращенных в полях next запросов.
}
	
  
Структура	
  запросов/ответов	
  REST	
  API	
  
	
  
ü  Прячет	
  детали	
  авторизации	
  
ü  «Постраничка»	
  
ü  Пакетные	
  запросы	
  с	
  макроязыком	
  
подстановки	
  
ü  Полезные	
  callbacks	
  
ü  Доступ	
  к	
  АПИ	
  модулей	
  и	
  сущностей	
  
	
  
<script src="//api.bitrix24.com/api/v1/">
</script>
	
  
	
  
JS	
  библиотека-­‐клиент	
  API	
  Битрикс24	
  	
  
	
  
•  Вызов	
  методов	
  API:	
  
	
  
	
  
BX24.callMethod('user.get', {ID: 10},
function(res){
if(res.data())
{
var user = res.data()[0];
if(user)
alert('Пользователя №' + user.ID +
' зовут ' + user.NAME);
}
});
	
  
	
  
JS	
  библиотека-­‐клиент	
  API	
  Битрикс24	
  	
  
	
  
•  Batch:	
  
BX24.callBatch({
get_user: ['user.current', {}],
get_department: {
method: 'department.get',
params: {
ID: '$result[get_user]
[UF_DEPARTMENT]'
}
}
}, function(result)
{
var l = result.get_department.data().length;
var str = 'Текущий пользователь ' +
result.get_user.data().NAME + ' ' + result.get_user.data().LAST_NAME
+ ' приписан к подразделени' + (l > 1 ? 'ям ' : 'ю ');
for(var i = 0; i < l; i++)
{
str += i == 0 ? '' : ', ';
str += result.get_department.data()[i].NAME;
}
alert(str);
});
•  Загрузка	
  файлов	
  –	
  имя	
  и	
  содержимое	
  в	
  base64	
  
	
  
<input type="file" id="testfile"><br />
<span onclick="sendInputFile()">send file from input</span><br />
<span onclick="sendStaticFile()">send static file</span><br />
<script type="text/javascript">
function sendInputFile()
{
BX24.callMethod('entity.item.add', {
'ENTITY': 'menu',
'NAME': Math.random(),
'DETAIL_PICTURE': document.getElementById('testfile')
}, function(){
alert('Finished!');
});
}
POST https://my.bitrix24.com/rest/entity.item.add.json HTTP/1.1
Host: my.bitrix24.com
Content-Length: 186
Content-Type: text/plain; charset=UTF-8
Origin: http://app.makssidorenko.bx
auth=6a8c365cb010ba42bd5b0f6ae803f47c&ENTITY=menu&NAME=0.2630483947652045&DETAIL_PICTURE[0]=1.gif&DETAIL_PICTURE[
1]=R0lGODlhAQABAIAAAP%2F%2F%2FwAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D
JS	
  библиотека-­‐клиент	
  API	
  Битрикс24	
  	
  
	
  
Полезные	
  плюшки	
  для	
  iframe:	
  
	
  
void BX24.resizeWindow(Integer width, Integer height[, Function callback])
void BX24.fitWindow([Function callback])
void BX24.reloadWindow()
void BX24.setTitle(String title[, Function callback])
Системные	
  диалоги:	
  
void BX24.selectUser(Function callback)
void BX24.selectAccess(Function callback)
Сохранение	
  настроек:	
  
void BX24.userOption.set(String name, String value)
void BX24.userOption.get(String name)
void BX24.appOption.set(String name, String value[, Function callback])
void BX24.appOption.get(String name)
JS	
  библиотека-­‐клиент	
  API	
  Битрикс24	
  	
  
	
  
Дерево	
  
Сортировка,	
  фильтрация	
  
Разные	
  типы	
  свойств	
  
	
  
BX24.callMethod('entity.add', {'ENTITY': 'dish', 'NAME': 'Dishes', 'ACCESS': {U1:'W',AU:'R'}});
BX24.callMethod('entity.get');
{"result":[{"ENTITY":"dish","NAME":"Dishes"},{"ENTITY":"menu","NAME":"Menu"}]}
BX24.callMethod('entity.update', {'ENTITY': 'dish', 'ACCESS': {U1:'W',AU:'R'}});
BX24.callMethod('entity.delete', {'ENTITY': ‘dish'}});
'ENTITY': 'dish‘ – созданный клиентом и уникальный в рамках приложения ID хранилища. Для обеспечения
идемпотентности. Планируем добавить в другие методы.
Хранилище	
  данных	
  
	
  
Строим	
  дерево	
  из	
  разделов,	
  добавляем	
  элементы	
  
	
  
BX24.callMethod('entity.section.add', {ENTITY: 'menu_new', 'NAME': 'Тестовый
раздел', 'SECTION': 34});
BX24.callMethod('entity.item.add', {
ENTITY: 'menu_new',
DATE_ACTIVE_FROM: new Date(),
DETAIL_PICTURE: '',
NAME: 'Hello, world!,
PROPERTY_VALUES: {
test: 11,
test1: 22,
test_file: ''
},
SECTION: 219
});
Хранилище	
  данных	
  
	
  
Строим	
  дерево	
  из	
  разделов,	
  добавляем	
  элементы,	
  выборка	
  
	
  
BX24.callMethod('entity.item.property.add', {ENTITY: 'menu_new', PROPERTY:
'new_prop', NAME: 'Новое свойство', TYPE: 'S'});
BX24.callMethod('entity.item.get', {
ENTITY: 'menu',
SORT: {DATE_ACTIVE_FROM: 'ASC', ID: 'ASC'},
FILTER: {
'>=DATE_ACTIVE_FROM': dateStart,
'<DATE_ACTIVE_FROM': dateFinish
}
}, $.proxy(this.buildData, this));
Хранилище	
  данных	
  
	
  
Нотификация	
  на	
  email	
  и	
  push-­‐уведомления	
  пользователям	
  на	
  устройства	
  Android,	
  iOS.	
  
Инфраструктура	
  Bitrix	
  Cloud	
  Messaging	
  (BCM):	
  
	
  
BX24.selectUser(function(user){
if(user)
{
BX24.callMethod('im.notify', {to: user.id, message: 'Привет, '+user.name+'!'});
}
});
Нотификация	
  пользователей	
  
	
  
Календари,	
  встречи	
  
	
  
Архитектура	
  Битрикс24	
  
Elas7c	
  Load	
  Balancing	
  
Web	
  1	
  
Elas7c	
  Load	
  Balancing	
  
Dynamic	
  
	
  Web	
  N	
  …	
  
CloudWatch	
  +	
  
AutoScaling	
  
Web	
  1	
   Web	
  2	
   Web	
  N	
  …	
  
CloudWatch	
  +	
  
AutoScaling	
  
S3	
  
management,	
  monitoring,	
  
backup	
  
Staqc	
  
	
  
	
  
	
  
CDN	
  
js,	
  css	
  
Dynamic	
  Staqc	
  
	
  
	
  
	
  
CDN	
  
js,	
  css	
  
images	
  (clients)	
  
images	
  (clients)	
  
local	
  
cache	
  
local	
  
cache	
  
local	
  
cache	
  
local	
  
cache	
  
local	
  
cache	
  
control	
  cache:	
  
memcached	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  master-­‐master	
  replicaqon	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  master-­‐master	
  replicaqon	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  master-­‐master	
  replicaqon	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
mysqld	
  
control	
  cache:	
  
memcached	
  
control	
  cache:	
  
memcached	
  
control	
  cache:	
  
memcached	
  
control	
  cache:	
  
memcached	
  
control	
  cache:	
  
memcached	
  
Web	
  2	
  
local	
  
cache	
  
Спасибо	
  за	
  внимание!	
  	
  	
  
Вопросы?	
  
Александр	
  Сербул	
  
serbul@1c-­‐bitrix.ru	
  
	
  	
  	
  	
  AlexSerbul	
  

More Related Content

What's hot

1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!
1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!
1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!Burbon.ru
 
битрикс история создания компании и продукта сергей рыжиков
битрикс   история создания компании и продукта   сергей рыжиковбитрикс   история создания компании и продукта   сергей рыжиков
битрикс история создания компании и продукта сергей рыжиковMedia Gorod
 
Решения для государственных организаций
Решения для государственных организацийРешения для государственных организаций
Решения для государственных организаций1С-Битрикс
 
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...1С-Битрикс
 
Сайт конференции
Сайт конференцииСайт конференции
Сайт конференции1С-Битрикс
 
Разработка сайта с 1С Битрикс
Разработка сайта с 1С БитриксРазработка сайта с 1С Битрикс
Разработка сайта с 1С БитриксMax Baas
 
Внутренний портал учебного заведения
Внутренний портал учебного заведенияВнутренний портал учебного заведения
Внутренний портал учебного заведения1С-Битрикс
 
Готовим сайты на 1С-Битрикс
Готовим сайты на 1С-БитриксГотовим сайты на 1С-Битрикс
Готовим сайты на 1С-БитриксIRCIT
 
Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»
Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»
Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»1С-Битрикс
 
Корпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнеса
Корпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнесаКорпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнеса
Корпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнесаimnowmedia
 
Возможности «1С-Битрикс: Управление сайтом»
Возможности «1С-Битрикс: Управление сайтом»Возможности «1С-Битрикс: Управление сайтом»
Возможности «1С-Битрикс: Управление сайтом»1С-Битрикс
 
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»1С-Битрикс
 
«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России1С-Битрикс
 
Корпоративный портал. Облачный сервис «Битрикс24» и коробочная версия
Корпоративный портал. Облачный сервис «Битрикс24» и коробочная версияКорпоративный портал. Облачный сервис «Битрикс24» и коробочная версия
Корпоративный портал. Облачный сервис «Битрикс24» и коробочная версия1С-Битрикс
 
Решения для образования
Решения для образованияРешения для образования
Решения для образования1С-Битрикс
 

What's hot (20)

Эрмитаж
ЭрмитажЭрмитаж
Эрмитаж
 
1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!
1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!
1С-Битрикс Управление сайтом версия 15.5 - ВСЕ НОВОЕ!
 
битрикс история создания компании и продукта сергей рыжиков
битрикс   история создания компании и продукта   сергей рыжиковбитрикс   история создания компании и продукта   сергей рыжиков
битрикс история создания компании и продукта сергей рыжиков
 
Решения для государственных организаций
Решения для государственных организацийРешения для государственных организаций
Решения для государственных организаций
 
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
 
Сайт конференции
Сайт конференцииСайт конференции
Сайт конференции
 
Federal mobile 2015
Federal mobile 2015Federal mobile 2015
Federal mobile 2015
 
Dev
DevDev
Dev
 
Разработка сайта с 1С Битрикс
Разработка сайта с 1С БитриксРазработка сайта с 1С Битрикс
Разработка сайта с 1С Битрикс
 
Веб-кластер
Веб-кластерВеб-кластер
Веб-кластер
 
Внутренний портал учебного заведения
Внутренний портал учебного заведенияВнутренний портал учебного заведения
Внутренний портал учебного заведения
 
Готовим сайты на 1С-Битрикс
Готовим сайты на 1С-БитриксГотовим сайты на 1С-Битрикс
Готовим сайты на 1С-Битрикс
 
Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»
Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»
Тиражные решения и готовые интернет-магазины на платформе «1С-Битрикс»
 
Корпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнеса
Корпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнесаКорпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнеса
Корпоративный сайт нашего времени: лучшие технологии «1С-Битрикс» для бизнеса
 
Возможности «1С-Битрикс: Управление сайтом»
Возможности «1С-Битрикс: Управление сайтом»Возможности «1С-Битрикс: Управление сайтом»
Возможности «1С-Битрикс: Управление сайтом»
 
Что нового в 14.0?
Что нового в 14.0?Что нового в 14.0?
Что нового в 14.0?
 
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
 
«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России
 
Корпоративный портал. Облачный сервис «Битрикс24» и коробочная версия
Корпоративный портал. Облачный сервис «Битрикс24» и коробочная версияКорпоративный портал. Облачный сервис «Битрикс24» и коробочная версия
Корпоративный портал. Облачный сервис «Битрикс24» и коробочная версия
 
Решения для образования
Решения для образованияРешения для образования
Решения для образования
 

Viewers also liked

Управление проектами в «Битрикс24»
Управление проектами в «Битрикс24»Управление проектами в «Битрикс24»
Управление проектами в «Битрикс24»1С-Битрикс
 
Презентация «1С:Альфа-Авто 5»
Презентация «1С:Альфа-Авто 5»Презентация «1С:Альфа-Авто 5»
Презентация «1С:Альфа-Авто 5»V-vivat
 
Обзор Cisco UCCX 11
Обзор Cisco UCCX 11Обзор Cisco UCCX 11
Обзор Cisco UCCX 11Cisco Russia
 
12 масштабных обновлений в Битрикс24.Корсика
12 масштабных обновлений в Битрикс24.Корсика12 масштабных обновлений в Битрикс24.Корсика
12 масштабных обновлений в Битрикс24.КорсикаНаталья Сергеева
 
CRM «Битрикс24» для управления продажами
CRM «Битрикс24» для управления продажамиCRM «Битрикс24» для управления продажами
CRM «Битрикс24» для управления продажами1С-Битрикс
 

Viewers also liked (6)

Cultura turística
Cultura turísticaCultura turística
Cultura turística
 
Управление проектами в «Битрикс24»
Управление проектами в «Битрикс24»Управление проектами в «Битрикс24»
Управление проектами в «Битрикс24»
 
Презентация «1С:Альфа-Авто 5»
Презентация «1С:Альфа-Авто 5»Презентация «1С:Альфа-Авто 5»
Презентация «1С:Альфа-Авто 5»
 
Обзор Cisco UCCX 11
Обзор Cisco UCCX 11Обзор Cisco UCCX 11
Обзор Cisco UCCX 11
 
12 масштабных обновлений в Битрикс24.Корсика
12 масштабных обновлений в Битрикс24.Корсика12 масштабных обновлений в Битрикс24.Корсика
12 масштабных обновлений в Битрикс24.Корсика
 
CRM «Битрикс24» для управления продажами
CRM «Битрикс24» для управления продажамиCRM «Битрикс24» для управления продажами
CRM «Битрикс24» для управления продажами
 

Similar to "API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс

битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковEYevseyeva
 
Программируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMПрограммируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMCisco Russia
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорAlexander Byndyu
 
How to write an extension for Neutron if you really need to
How to write an extension for Neutron if you really need toHow to write an extension for Neutron if you really need to
How to write an extension for Neutron if you really need toVadim Ponomarev
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Dmitry Evteev
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application SecurityVladimir Kochetkov
 
Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»SpbDotNet Community
 
Парсим и кодогенерируем для С++ с использованием clang
Парсим и кодогенерируем для С++ с использованием clangПарсим и кодогенерируем для С++ с использованием clang
Парсим и кодогенерируем для С++ с использованием clangcorehard_by
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflowit-people
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субдKewpaN
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteEvernote
 
[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...
[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...
[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...Yauheni Akhotnikau
 
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014Artsofte IT company
 
Web осень 2013 лекция 6
Web осень 2013 лекция 6Web осень 2013 лекция 6
Web осень 2013 лекция 6Technopark
 
"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИСit-people
 

Similar to "API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс (20)

Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 
Программируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMПрограммируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EM
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафор
 
How to write an extension for Neutron if you really need to
How to write an extension for Neutron if you really need toHow to write an extension for Neutron if you really need to
How to write an extension for Neutron if you really need to
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
 
Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»
 
Парсим и кодогенерируем для С++ с использованием clang
Парсим и кодогенерируем для С++ с использованием clangПарсим и кодогенерируем для С++ с использованием clang
Парсим и кодогенерируем для С++ с использованием clang
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflow
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд
 
Aspect Oriented Approach
Aspect Oriented ApproachAspect Oriented Approach
Aspect Oriented Approach
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
 
Что нового в 11.0?
Что нового в 11.0?Что нового в 11.0?
Что нового в 11.0?
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от Evernote
 
[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...
[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...
[C++ CoreHard Autumn 2018] Actors vs CSP vs Task...
 
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
 
Web осень 2013 лекция 6
Web осень 2013 лекция 6Web осень 2013 лекция 6
Web осень 2013 лекция 6
 
"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс

  • 1.
  • 2. API  Битрикс24  -­‐  изнутри,  с  пристрастием   Сербул  Александр   руководитель  направления  контроля  качества   интеграции  и  внедрений  1С-­‐Битрикс   AlexSerbul
  • 3. Битрикс24  –  с  чем  будем  общаться  через  API Рабочие инструменты в «социальном» формате – в облаке  
  • 4. Битрикс  –  Маркетплейс.  С  чего  все  началось. С 2010 года. Более 1000 решений в каталоге.  
  • 5. Битрикс24  –  Маркетплейс  -­‐  развитие C лета 2013 партнеры и разработчики активно создают приложения.  
  • 6. Scrum + SMS = крепкий сон менеджера обеспечен! ;-)   Битрикс24  -­‐  Маркетплейс  
  • 7. Установка и запуск приложения в iframe   Битрикс24  -­‐  Маркетплейс  
  • 8. Объекты  в  REST  API  Битрикс24:     ü  пользователи  и  их  иерархия,  структура  компании   ü  отправка  уведомлений  –  email,  push  на  моб.  устройства,  desktop    app.   ü  работа  с  задачами   ü  CRM   ü  календари   ü  работа  с  абстрактными  древовидными  данными  (инфоблоками)   Битрикс24  –  REST  API  
  • 9. RFC  6749  -­‐  философия  на  тему  редиректов    J   Написали  свой  OAuth2.0  веб-­‐сервис  на  PHP.     Поддержали  самый  полный  flow  –  «4.1.  AuthorizaDon  Code  Grant».     «1.3.1.    Authorizaqon  Code»  –  время  жизни  30  сек.     «3.3.  Access  Token  Scope»  –  поддерживаем  уровни,  не  мельче  модуля     «6.  Refreshing  an  Access  Token»  –  обновляем  Access  Token,  время  жизни  –  1  час     «7.1.    Access  Token  Types»  –  простой  токен  пока  (строка),  думаем  про  MAC  и  подписи         OAuth  2.0  –  детали  поддержки  протокола  
  • 10. 1)  «Внутреннее»  –  архив  html+js+ресурсы   загружается  в  облако  Битрикс24   2)  «Встраиваемое»  -­‐  через  iframe  на  портале   пользователи;  контроллер  iframe  -­‐  на  сайте   партнера/разработчика   3)  «Внешнее»  -­‐  доступ  только  к  API  Битрикс24   Типов  может  быть  больше,  думаем  как  их   классифицировать.     Типы  приложений  
  • 11. Все  настраивается  в  «личном  кабинете»   разработчика:     •  URI  приложения  –  для  контроля  адреса   приложения  и  iframe     •  Список  прав  (scope)  –  ограничение  доступа   приложения  к  API     •  Пароль  приложения  –  для  получения  Access   Token         Настройка  прав  OAuth  2.0  –  Access  Token  Scope  
  • 12. 1.  h€ps://my.bitrix24.ru/oauth/authorize/?   client_id=First_APP&   response_type=code&   redirect_uri=  h"ps://test.com/bitrix/oauth/oauth_test.php     2.  h€ps://test.com/bitrix/oauth/oauth_test.php?   code=xxxxxxxxxxxxxxxxxxxxxxxxxxx     3.  h€ps://my.bitrix24.ru/oauth/token/?   client_id=First_APP&   grant_type=authorizaqon_code&   client_secret=#secret_key#&   redirect_uri=  h"ps://test.com/bitrix/oauth/oauth_test.php  &   code=  xxxxxxxxxxxxxxxxxxxxxxxxxxx&   scope=user     4.  h€ps://test.com/bitrix/oauth/oauth_test.php?   access_token=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy     5.  h€ps://my.bitrix24.ru/rest/methods.json?   auth=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy&full=true     {"result":["methods","batch","calendar.event.get",  …]}   Алгоритм  авторизации  -­‐  Authorizaqon  Code  Grant    
  • 13. h€ps://имя_портала.bitrix24.ru/oauth/token/?   grant_type=authorizaqon_code&   client_id=код_приложения&   client_secret=секретный_код_приложения&   code=код  авторизации  клиента&   scope=набор_разрешений_приложения&   redirect_uri=URL_приложения     {   "access_token":"код_авторизации","expires_in":3600,   "scope":"набор_разрешений","refresh_token":"код_обновления_авторизации",   "domain":"имя_портала","member_id":"идентификатор_портала“   }     h€ps://имя_портала.bitrix24.ru/oauth/token/?   grant_type=refresh_token&   client_id=код_приложения&   client_secret=секретный_код_приложения&   refresh_token=код_обновления_авторизации&   scope=набор_разрешений_приложения&   redirect_uri=URL_приложения   Обновление  Access  Token    
  • 14. https://домен_Б24.bitrix24.{ru|en|de}/rest/имя_метода.транспорт? параметры_метода& auth=ключ_авторизации https://my.bitrix24.ru/rest/methods.xml?auth=d161f25928c3184678924ec127edd29a - получить список доступных методов в формате xml. https://my.bitrix24.ru/rest/entity.item.get.json?ENTITY=menu&auth=d161f25928c3184678924ec127edd29a - получить в формате json список всех элементов сущности menu. { "result": результат выполнения метода, "error": ошибка выполнения метода, "total": общее количество записей в ответе списочного метода, "next": число, которое нужно послать для получение следующей страницы данных списочного метода } { "result": массив результатов запросов пакета, "result_error": массив ошибок запросов пакета, "result_total": массив количеств записей в ответах списочных методов, "result_next": массив чисел, возвращенных в полях next запросов. }   Структура  запросов/ответов  REST  API    
  • 15. ü  Прячет  детали  авторизации   ü  «Постраничка»   ü  Пакетные  запросы  с  макроязыком   подстановки   ü  Полезные  callbacks   ü  Доступ  к  АПИ  модулей  и  сущностей     <script src="//api.bitrix24.com/api/v1/"> </script>     JS  библиотека-­‐клиент  API  Битрикс24      
  • 16. •  Вызов  методов  API:       BX24.callMethod('user.get', {ID: 10}, function(res){ if(res.data()) { var user = res.data()[0]; if(user) alert('Пользователя №' + user.ID + ' зовут ' + user.NAME); } });     JS  библиотека-­‐клиент  API  Битрикс24       •  Batch:   BX24.callBatch({ get_user: ['user.current', {}], get_department: { method: 'department.get', params: { ID: '$result[get_user] [UF_DEPARTMENT]' } } }, function(result) { var l = result.get_department.data().length; var str = 'Текущий пользователь ' + result.get_user.data().NAME + ' ' + result.get_user.data().LAST_NAME + ' приписан к подразделени' + (l > 1 ? 'ям ' : 'ю '); for(var i = 0; i < l; i++) { str += i == 0 ? '' : ', '; str += result.get_department.data()[i].NAME; } alert(str); });
  • 17. •  Загрузка  файлов  –  имя  и  содержимое  в  base64     <input type="file" id="testfile"><br /> <span onclick="sendInputFile()">send file from input</span><br /> <span onclick="sendStaticFile()">send static file</span><br /> <script type="text/javascript"> function sendInputFile() { BX24.callMethod('entity.item.add', { 'ENTITY': 'menu', 'NAME': Math.random(), 'DETAIL_PICTURE': document.getElementById('testfile') }, function(){ alert('Finished!'); }); } POST https://my.bitrix24.com/rest/entity.item.add.json HTTP/1.1 Host: my.bitrix24.com Content-Length: 186 Content-Type: text/plain; charset=UTF-8 Origin: http://app.makssidorenko.bx auth=6a8c365cb010ba42bd5b0f6ae803f47c&ENTITY=menu&NAME=0.2630483947652045&DETAIL_PICTURE[0]=1.gif&DETAIL_PICTURE[ 1]=R0lGODlhAQABAIAAAP%2F%2F%2FwAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D JS  библиотека-­‐клиент  API  Битрикс24      
  • 18. Полезные  плюшки  для  iframe:     void BX24.resizeWindow(Integer width, Integer height[, Function callback]) void BX24.fitWindow([Function callback]) void BX24.reloadWindow() void BX24.setTitle(String title[, Function callback]) Системные  диалоги:   void BX24.selectUser(Function callback) void BX24.selectAccess(Function callback) Сохранение  настроек:   void BX24.userOption.set(String name, String value) void BX24.userOption.get(String name) void BX24.appOption.set(String name, String value[, Function callback]) void BX24.appOption.get(String name) JS  библиотека-­‐клиент  API  Битрикс24      
  • 19. Дерево   Сортировка,  фильтрация   Разные  типы  свойств     BX24.callMethod('entity.add', {'ENTITY': 'dish', 'NAME': 'Dishes', 'ACCESS': {U1:'W',AU:'R'}}); BX24.callMethod('entity.get'); {"result":[{"ENTITY":"dish","NAME":"Dishes"},{"ENTITY":"menu","NAME":"Menu"}]} BX24.callMethod('entity.update', {'ENTITY': 'dish', 'ACCESS': {U1:'W',AU:'R'}}); BX24.callMethod('entity.delete', {'ENTITY': ‘dish'}}); 'ENTITY': 'dish‘ – созданный клиентом и уникальный в рамках приложения ID хранилища. Для обеспечения идемпотентности. Планируем добавить в другие методы. Хранилище  данных    
  • 20. Строим  дерево  из  разделов,  добавляем  элементы     BX24.callMethod('entity.section.add', {ENTITY: 'menu_new', 'NAME': 'Тестовый раздел', 'SECTION': 34}); BX24.callMethod('entity.item.add', { ENTITY: 'menu_new', DATE_ACTIVE_FROM: new Date(), DETAIL_PICTURE: '', NAME: 'Hello, world!, PROPERTY_VALUES: { test: 11, test1: 22, test_file: '' }, SECTION: 219 }); Хранилище  данных    
  • 21. Строим  дерево  из  разделов,  добавляем  элементы,  выборка     BX24.callMethod('entity.item.property.add', {ENTITY: 'menu_new', PROPERTY: 'new_prop', NAME: 'Новое свойство', TYPE: 'S'}); BX24.callMethod('entity.item.get', { ENTITY: 'menu', SORT: {DATE_ACTIVE_FROM: 'ASC', ID: 'ASC'}, FILTER: { '>=DATE_ACTIVE_FROM': dateStart, '<DATE_ACTIVE_FROM': dateFinish } }, $.proxy(this.buildData, this)); Хранилище  данных    
  • 22. Нотификация  на  email  и  push-­‐уведомления  пользователям  на  устройства  Android,  iOS.   Инфраструктура  Bitrix  Cloud  Messaging  (BCM):     BX24.selectUser(function(user){ if(user) { BX24.callMethod('im.notify', {to: user.id, message: 'Привет, '+user.name+'!'}); } }); Нотификация  пользователей    
  • 24. Архитектура  Битрикс24   Elas7c  Load  Balancing   Web  1   Elas7c  Load  Balancing   Dynamic    Web  N  …   CloudWatch  +   AutoScaling   Web  1   Web  2   Web  N  …   CloudWatch  +   AutoScaling   S3   management,  monitoring,   backup   Staqc         CDN   js,  css   Dynamic  Staqc         CDN   js,  css   images  (clients)   images  (clients)   local   cache   local   cache   local   cache   local   cache   local   cache   control  cache:   memcached   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld                                                                                                                                                                                                                                                        master-­‐master  replicaqon                                                                                                                                      master-­‐master  replicaqon                      master-­‐master  replicaqon   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   mysqld   control  cache:   memcached   control  cache:   memcached   control  cache:   memcached   control  cache:   memcached   control  cache:   memcached   Web  2   local   cache  
  • 25. Спасибо  за  внимание!       Вопросы?   Александр  Сербул   serbul@1c-­‐bitrix.ru          AlexSerbul