Перейти до вмісту

Отримання Token для доступу до API ​

Отримання Token для доступу до API ​

Цей документ описує процес отримання токена авторизації (Token), необхідного для доступу до API платформи.

Зміст ​

Крок 1. Авторизація ​

Client credentials flow ​

Виконайте POST-запит за адресою https://id.medakadem.com/connect/token.

Незалежно від медичного закладу, з яким виконується інтеграція, точка доступу для отримання токена однакова: 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 на значення, надані технічною підтримкою.

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"
}'

Токен для виклику цього API має бути отриманий за процесом, описаним у розділі Client credentials flow, і містити scope gambit:online.

Хост для виконання цього API — це хост медичного закладу: https://<clinica-web-customer>.medakadem.com.ua/.

У разі успішного виконання пацієнт отримає 4-значний OTP-код з обмеженим строком дії.

Далі виконайте запит на отримання токена:

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, за допомогою якого можна повторно отримати токен для поточного пацієнта за спрощеним процесом.

Крок 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

Використання Token ​

Використовуйте значення поля access_token для авторизації наступних запитів до API.

Authorization: Bearer access_token_value