Автентифікація
Доступ до Online Booking API надається за партнерськими обліковими даними, які видає HMS. Ендпоінт входу обмінює apiKey і apiSecret на токен, який надсилається в заголовку Authorization: Bearer у всіх інших запитах. Докладніше — у посібнику Автентифікація.
Увійти й отримати токен#
POST
/external/public/loginАвтентифікація не потрібна · Тіло: application/x-www-form-urlencoded або multipart/form-data
Перевіряє облікові дані партнера й видає токен, якщо партнер має доступ до готелю. Токен прив’язаний до одного готелю, тому для кожного готелю потрібен окремий вхід.
Поля форми
apiKeystringобов’язковийПартнерський ключ, виданий HMS.
apiSecretstringобов’язковийСекретний ключ партнера. Зберігайте його лише на сервері.
hotelCodeintegerобов’язковийІдентифікатор готелю в HMS (
hotelID). Партнер повинен мати доступ до цього готелю.hotelSeoUrlstringSEO-адреса готелю в HMS. Замість
hotelCode її використовує лише власний модуль бронювання HMS; сторонні інтеграції мають надсилати hotelCode.Відповідь
200 Токен і дані готелю. Токен дійсний 7 днів; оновіть його, повторно виконавши вхід до закінчення строку дії.
successbooleanОзнака результату.
hotelCodestringІдентифікатор готелю, до якого прив’язаний токен.
tokenstringBearer-токен. Вважайте його непрозорим рядком і не розбирайте.
hotelSeoUrlstring | nullSEO-адреса готелю.
Відповіді з помилками
- 200
partner_is_not_found— пара ключів не збіглася;hotel_is_not_found— немає готелю з такимhotelSeoUrl;hotel_permission_is_not_found— партнер не має доступу до цього готелю або доступ неактивний.
curl "https://test.hms.gen.tr/external/public/login" \
-d "apiKey=5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4+Am7Q=" \
-d "apiSecret=a143d6408634696b811def06d236682950cacb9761aa8ad5827da4015bda4b19" \
-d "hotelCode=1000"const res = await fetch("https://test.hms.gen.tr/external/public/login", {
method: "POST",
body: new URLSearchParams([
["apiKey", "5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4+Am7Q="],
["apiSecret", "a143d6408634696b811def06d236682950cacb9761aa8ad5827da4015bda4b19"],
["hotelCode", "1000"]
])
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/public/login');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query([
'apiKey' => '5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4+Am7Q=',
'apiSecret' => 'a143d6408634696b811def06d236682950cacb9761aa8ad5827da4015bda4b19',
'hotelCode' => '1000',
]),
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"hotelCode": "1000",
"token": "eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIsInRpbWV6b25lX3R5cGUiOjMsInRpbWV6b25lIjoiRXVyb3BlL0lzdGFuYnVsIn0sInRva2VuIjoiM2tkOXNscTJwbTh2eHI0dHp5Nm53YjFoYzdmajVnYTAiLCJob3RlbElEIjoxMDAwLCJ1c2VySUQiOjQyLCJkYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTA4IDEwOjI0OjMxLjAwMDAwMCJ9fQ==",
"hotelSeoUrl": "demo-otel"
}{
"success": false,
"token": null,
"message": "hotel_permission_is_not_found"
}