0  /  11

PHP REST API

Просмотров: 1589 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 03.03.2017

С версии 12.5.1 модуля socialservices появилась возможность использовать REST API, используя PHP.

Пример

Задача: получить список всех событий календаря, добавленных вручную на портале my.bitrix24.ru.

Для этого на my.bitrix24.ru имеется зарегистрированное приложение, от имени которого будут идти запросы:

  1.   "CLIENT_ID" => 'planner_app',
      "CLIENT_SECRET" => 'secret_key',
      "TITLE" => 'Тестовое приложение',
      "REDIRECT_URI" => 'http://test.com/bitrix/oauth/oauth_test.php',
      "SCOPE" => array('user')	
    где:
    • CLIENT_ID – Идентификатор приложения
    • CLIENT_SECRET – Секретный ключ приложения, нужен для подписывания запросов
    • TITLE – Название приложения
    • REDIRECT_URI
    • SCOPE – массив доступных разрешений для приложения.
  2. Запрашиваем первый ключ (Request token). GET запрос по адресу:

    http://my.bitrix24.ru/oauth/authorize/?client_id=planner_app&response_type=code&redirect_uri= http%3A%2F%2Ftest.com%2Fbitrix%2Foauth%2Foauth_test.php

    где:
    • my.bitrix24.ru
    • client_id – идентификатор приложения
    • response_type – тип возвращаемого ответа (нам нужен code)
    • redirect_uri – URL кодированный адрес вашего скрипта, который должен принять ответ сервера и обработать его. Обязательно должен совпадать с указанным адресом при регистрации приложения!
  3. В ответ сервер обратится к REDIRECT_URI:

    http://test.com/bitrix/oauth/oauth_test.php?code=xxxxxxxxxxxxxxxxxxxxxxxxxxx

    где:
    • code – возвращенный сервером request token (время жизни по умолчанию 30 секунд)
    $requestCode = $_REQUEST[‘code’];
  4. Создаем объект CsocServBitrixOAuth и передаем в него исходные данные:
    $objBitrixOAuth = new CSocServBitrixOAuth('planner_app', 'secret_key', 'http://my.bitrix24.ru',
                                              'http://test.com/bitrix/oauth/oauth_test.php', $USER);
  5. Добавляем scope:
    $objBitrixOAuth->getEntityOAuth()->setScope(array('calendar', 'task'));
  6. Получаем access token:
    $accessToken = $objBitrixOAuth->getAccessToken($requestCode);
  7. Получаем список всех событий календаря:
    $obApp = new CBitrixPHPAppTransport($accessToken, 'http://my.bitrix24.ru');
    $arEvents = $obApp->call('calendar.event.get.nearest', array('maxEventsCount' => '5'));

Получим список добавленных вручную задач с помощью batch’а:

$obApp = new CBitrixPHPAppTransport($accessToken, 'http://my.bitrix24.ru');
$arPlannerTasks = array(array('task.planner.getlist', array()),
array('task.items.getlist', array('ORDER' => array("ID" => 'desc'), 'FILTER' => array('ID' => '$result[0]'))));
$arTasksBatch = $obApp->batch($arPlannerTasks);

9
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии