Получение provider token
Как получить provider token по auth token и provider_id для работы с данными конкретной компании.
Для работы с данными конкретной компании внешней системе обычно недостаточно только общего токена авторизации пользователя. Нужен еще provider token — специальный токен, который дает доступ к данным выбранной компании.
Если говорить проще:
- auth token подтверждает, кто вы;
- provider token подтверждает, с какой именно компанией вы работаете.
Без provider token многие методы, связанные с данными компании, работать не будут.
Когда это нужно
Provider token нужен, если внешняя система:
- читает данные по конкретной компании;
- отправляет данные в определенную компанию;
- работает не “вообще с пользователем”, а именно в контексте одной компании или одного рабочего контура.
Это типичный сценарий для:
- отчетности;
- интеграции с внутренними сервисами;
- обмена заявками;
- чтения структуры компании;
- работы со встроенными процессами компании.
Что потребуется заранее
Перед тем как получать provider token, у вас уже должны быть:
- auth token пользователя;
- provider_id компании, с которой нужно работать.
Где взять provider_id
provider_id — это идентификатор компании.
Его можно:
- взять из интерфейса компании;
- сохранить заранее в своей интеграции;
- получить из сценария, где пользователь уже выбрал нужную компанию.
Если вы работаете с несколькими компаниями, важно не перепутать provider_id, иначе provider token будет получен для другой компании.
Какой метод использовать
Для получения данных компании и provider token используется запрос:
GET /api/v1/providers/user/params/{provider_id}
Где:
{provider_id}— идентификатор нужной компании.
Что передать в запросе
В запрос нужно передать auth token пользователя в заголовке авторизации.
Проще всего воспринимать это так:
- пользователь уже вошел в систему;
- внешняя интеграция использует его auth token;
- по этому токену и
provider_idполучает параметры компании; - в ответе приходит provider token.
Пример запроса
curl --request GET \
--url https://getway.synchra24.com/api/v1/providers/user/params/123 \
--header 'Authorization: Bearer <AUTH_TOKEN>'
Где:
123— этоprovider_id;<AUTH_TOKEN>— токен авторизации пользователя.
Что приходит в ответе
В ответе возвращаются параметры компании. Среди них есть поле:
token
Именно это значение и нужно использовать как provider token.
То есть общий принцип такой:
- отправили
auth tokenиprovider_id; - получили ответ с параметрами компании;
- взяли из ответа поле
token; - используете его в следующих запросах как
X-Provider-Token.
Как это выглядит на практике
Типовой сценарий такой:
Шаг 1. Получите auth token
Сначала пользователь авторизуется в системе, и у вас появляется auth token.
Шаг 2. Определите нужную компанию
Вы понимаете, с какой именно компанией будет работать интеграция, и получаете ее provider_id.
Шаг 3. Запросите параметры компании
Выполните запрос:
GET /api/v1/providers/user/params/{provider_id}
с auth token пользователя.
Шаг 4. Возьмите provider token из ответа
В ответе найдите поле token.
Это и есть provider token, который нужен для дальнейших запросов.
Шаг 5. Используйте provider token в следующих методах
В дальнейших запросах к данным компании передавайте этот токен в заголовке:
X-Provider-Token: <PROVIDER_TOKEN>
Почему нельзя использовать только auth token
Потому что auth token относится к пользователю в целом, а не к одной конкретной компании.
У одного пользователя может быть доступ:
- к нескольким компаниям;
- к разным ролям;
- к разным данным в разных компаниях.
Provider token как раз и закрепляет запрос за нужной компанией.
Что важно помнить
1. Provider token нужно получать для каждой компании отдельно
Если у пользователя есть доступ к нескольким компаниям, provider token для каждой из них будет своим.
2. Не подставляйте случайный provider_id
Если передать неверный provider_id, вы получите данные не той компании или не получите доступ вовсе.
3. Храните provider token аккуратно
Это рабочий ключ доступа к данным компании. Его не стоит публиковать в открытых логах, заметках или передавать третьим лицам.
В каком порядке обычно строят интеграцию
Практически удобный сценарий такой:
- получить auth token пользователя;
- определить
provider_id; - запросить provider token;
- сохранить его в безопасном контексте интеграции;
- использовать в рабочих методах API.
Что дальше
После получения provider token можно переходить к методам, которые работают уже с данными компании:
- сотрудниками;
- структурой компании;
- задачами;
- документами;
- заявками;
- временем;
- другими сервисами, которые используются в нужной компании.
Если вы строите интеграцию впервые, удобно сначала проверить этот сценарий вручную: получить provider token по одному provider_id, а затем выполнить с ним простой тестовый запрос к данным компании.