Аутентификация

Для работы с большинством API-методов системы требуется двойная аутентификация: передача cookie и JWT-токена.

Прежде всего, понадобится API-токен,который можно получить в разделе Паспорта

Аутентификационная cookie называется AUTH_TICKET. Для её получения требуется вызвать API-метод User.login:

          
 curl --location 'https://api-links.sape.ru/login' \
          --header 'Content-Type: application/json' \
          --header 'Accept: application/json' \
          --data-raw '{
            "login": "example@example.com",
            "apiToken": "example"
          }'

        

Та же операция на языке PHP:

          
 <?php
              $login = "example@example.com";
              $apiToken = "example";

              $data = json_encode([
                  "login" => $login,
                  "apiToken" => $apiToken
              ]);

              $ch = curl_init();

              curl_setopt($ch, CURLOPT_URL, "https://api-links.sape.ru/login");
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($ch, CURLOPT_POST, 1);
              curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

              $headers = [
                  "Content-Type: application/json",
                  "Accept: application/json"
              ];
              curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

              $response = curl_exec($ch);
              if (curl_errno($ch)) {
                  echo 'Error:' . curl_error($ch);
              }
              curl_close($ch);

              var_export($response);
            ?>

        

В ответ получим AUTH_TICKET.

Получив AUTH_TICKET, далее получаем JSON Web Token (JWT).

Делается это обращением к API-методу User.auth:

          
curl --location 'https://api-links.sape.ru/auth'
            --header 'Accept: application/json'
            --header 'Cookie: AUTH_TICKET= XXXXXXXXXXXX'

        

В ответ получаем JWT.

Авторизация пройдена. Для того, чтобы убедиться, что все прошло успешно, можно сделать запрос на API-метод «Сведение о текущем пользователе» (User.getInfo):

          
  curl --location 'https://api-links.sape.ru/rest/User/info'
  --header 'Accept: application/json'
  --header 'Authorization: Bearer XXXXXXXXXXXX'
  --header 'Cookie: AUTH_TICKET= XXXXXXXXXXXX'