Перейти к содержанию

Получение Token для доступа к API ​

Получение Token для доступа к API ​

Этот документ описывает процесс получения токена авторизации (Token), необходимого для доступа к API платформы.

Содержание ​

Шаг 1. Авторизация ​

Client credentials flow ​

Выполните POST-запрос по адресу https://id.medakadem.com/connect/token.

POST /connect/token HTTP/1.1
Host: id.medakadem.com
Content-Type: application/x-www-form-urlencoded

client_id=<client_id_value>&client_secret=<client_secret_here>&grant_type=client_credentials&scope=gambit%3Astatic_data
ПараметрЗначениеОписание
grant_typeclient_credentialsнеизменяемое значение
client_idидентификатор клиентадля получения обратитесь в поддержку
client_secretсекретный параметр клиентадля получения обратитесь в поддержку
scopeперечень необходимых scopeнабор прав доступа

Параметр scope содержит разделённый пробелом перечень прав доступа, которые будет иметь access_token. Для каждого API ключа перечень доступных значений может отличаться.

Замените client_id, client_secret и scope на значения, предоставленные технической поддержкой.

Пример запроса на получение Token через client credentials flow.

Получение Token для доступа к API — 1

Patient flow ​

Для некоторых API, таких как:

GET api/online/v1/patient/prerecords
GET api/online/v1/patient/prerecords/{patientId:int}
GET api/online/v1/patient/prerecords/countPlanned
GET api/online/v1/patient/prerecords/by/id/{id}
DELETE api/online/v1/patient/prerecords/{prerecordId}
POST api/online/v1/patient/prerecords
api/online/v1/patient/identity/*
GET api/online/v1/patient/history
GET api/online/v1/patient/history/analysisFiles/{analysisId:int}
GET api/online/v1/patient/history/print/analysis/{analysisId:int}
GET api/online/v1/patient/history/print/protocol/{protocolId:int}
GET api/online/v1/patient/protocols/{id}/information
GET api/online/v1/patient/analysis/{id}/information
api/online/v1/patientFamily/*

необходимо использовать токен другого типа, который выдаётся индивидуально для каждого пациента с использованием OTP-кода авторизации.

Для этого выполните запрос к ресурсу POST api/online/v2/patient/identity/initialize-otp-login:

curl --location 'https://<clinica-web-customer>.medakadem.com.ua/api/online/v2/patient/identity/initialize-otp-login' \
--header 'Authorization: Bearer <token_here>' \
--header 'Content-Type: application/json' \
--data '{
    "Phone": "0000000000"
}'

HOST для выполнения этого API — это хост медицинского учреждения: https://<clinica-web-customer>.medakadem.com.ua/.

При успешном выполнении пациенту придёт 4-значный OTP-код с ограниченным сроком действия.

Пример инициализации OTP login для пациента.

Получение Token для доступа к API — 2

Далее выполните запрос на получение токена:

curl --location 'https://id.medakadem.com/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'grant_type=patient' \
--data-urlencode 'client_id=••••••' \
--data-urlencode 'client_secret=••••••' \
--data-urlencode 'scope=gambit:online gambit:static_data patient_profile offline_access gambit:patient:profile' \
--data-urlencode 'client_name=<client_name>' \
--data-urlencode 'phone=0000000000' \
--data-urlencode 'otp=0000'
ПараметрЗначениеОписание
grant_typepatientнеизменяемое значение
client_idидентификатор клиентадля получения обратитесь в поддержку
client_secretсекретный параметр клиентадля получения обратитесь в поддержку
scopegambit:online gambit:static_data patient_profile offline_access gambit:patient:profileминимально необходимый перечень для работы, при необходимости его можно расширить
client_nameназвание клиентаможно получить в поддержке
phoneтелефон пациентабез разделителей и пробелов
otpодноразовый код авторизации пациентабудет отправлен после вызова метода на предыдущем шаге

При успешном ответе вы получите:

{
    "access_token": "<access_token value>",
    "expires_in": 3600,
    "token_type": "Bearer",
    "refresh_token": "<refresh token value>",
    "scope": "gambit:online gambit:patient:profile gambit:static_data offline_access patient_profile"
}

Если в перечне scope есть gambit:patient:profile, также обязательно следует добавить patient_profile.

offline_access — системный scope. Если передать его, в ответе вы получите также refresh_token, с которым сможете повторно получить токен для текущего пациента по упрощённому процессу.

Пример запроса patient token и ответа с refresh token.

Получение Token для доступа к API — 3

Шаг 2. Получение ответа ​

После успешной авторизации сервер вернёт ответ, который будет содержать токен в поле access_token:

{
    "access_token": "access_token_here",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": "gambit:static_data"
}
ПараметрТипОписание
access_tokenstringтокен доступа
expires_innumberсрок жизни токена в секундах
token_typestringBearer
scopestringсписок scopes

Пример ответа с access_token.

Получение Token для доступа к API — 4

Использование Token ​

Используйте значение поля access_token для авторизации ваших последующих запросов к API.

Authorization: Bearer access_token_value