Тема
Отримання 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_type | client_credentials | незмінне значення |
| client_id | ідентифікатор клієнта | для отримання зверністся на підтримку |
| client_secret | секретний параметрл клієнта | для отримання зверністся на підтримку |
| scope | перелік необхідних скоупів |
Patient flow

для певних АПІ, таких як:
- 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"
}'При успішному виконанні -пацієнту надійде 4х чифровий OTP код (термін дії якого обмежений)
Виконати запит на отримання токену - POST https://id.medakadem.com/connect/token
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_type | patient | незмінне значення |
| client_id | ідентифікатор клієнта | для отримання зверністся на підтримку |
| client_secret | секретний параметрл клієнта | для отримання зверністся на підтримку |
| scope | перелік необхідних скоупів | gambit:online gambit:static_data patient_profile offline_access gambit:patient:profile (мінімально необхідний перелік для роботи, за необхідністю його можна розширити). |
| client_name | назва клієнта | можна отримати в підтримки |
| phone | телефон пацієнта | без розділових знаків чи пробілів |
| otp | одноразовий код авторизації пацієнта | (буде надісланий після виклику методу в попередньому кроці) |
при успішній відповіді ви отримаєте:
{
"access_token": "<accesss_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"
}Крок 2. Отримання відповіді
Після успішної авторизації сервер поверне відповідь, яка міститиме токен у полі access_token:
{
"access_token": "access_token_here",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "gambit:static_data"
}| Параметр | Тип | Опис |
| access_token | string | token доступу |
| expires_in | number | Тривалість життя токену в секундах |
| token_type | string | Bearer |
| scope | string | Список scopes |
Використовуйте значення поля access_tokenдля авторизації ваших подальших запитів до API.
Використання Token
Для доступу до захищених ресурсів API включайте токен у заголовок запиту таким чином:
Authorization: Bearer access_token_value