Перейти к основному содержимому

Аутентификация и доступ к API

Обзор

GuestMe API использует OAuth 2.0 для аутентификации. Для доступа к API вам понадобятся учётные данные клиента.


Получение доступа

Для начала работы с API запросите следующие данные у менеджера GuestMe или через техническую поддержку:

  • client_id - идентификатор клиента
  • client_secret - секретный ключ клиента
  • адрес сервера - URL API сервера
Контакты для получения доступа

Email: api@guestme.ru Тема письма: "Запрос доступа к GuestMe API"


Получение access_token

После получения учётных данных вы можете получить токен доступа, используя flow client_credentials.

Параметры запроса

  • grant_type: client_credentials
  • scope: ROLE_EXTERNAL_INTEGRATION
  • Authorization header: Basic base64(client_id:client_secret)

Пример запроса

POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Z3Vlc3RtZTpzZWNyZXQ=

grant_type=client_credentials&scope=ROLE_EXTERNAL_INTEGRATION

Пример с cURL

curl -X POST https://api.examle.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Basic $(echo -n 'client_id:client_secret' | base64)" \
-d "grant_type=client_credentials&scope=ROLE_EXTERNAL_INTEGRATION"

Пример ответа

{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "ROLE_EXTERNAL_INTEGRATION"
}

Использование токена

Полученный access_token используется для всех последующих запросов к API:

GET /api/v1/external/restaurant
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

Срок действия токена

  • Токен действителен в течение 1 часа (3600 секунд)
  • После истечения срока нужно получить новый токен
  • Рекомендуется обновлять токен проактивно за 5 минут до истечения

Best Practices

✅ Рекомендуется

  • Хранить client_secret в безопасном месте (переменные окружения, секреты)
  • Кэшировать токен и переиспользовать его в течение срока действия
  • Обновлять токен до истечения срока действия
  • Обрабатывать ошибки при получении токена

❌ Не рекомендуется

  • Хранить client_secret в коде или репозитории
  • Запрашивать новый токен для каждого запроса к API

Нужна помощь? Написать в поддержку