Швидкий старт
На цій сторінці ви створите API-ключ у панелі HMS готелю й отримаєте список гостей, які проживають у готелі. Вам потрібен доступ до панелі під користувачем, якому дозволено керувати API-ключами; інакше ключ може створити й передати вам адміністрація готелю.
1. Створіть ключ#
- У панелі адміністратора HMS відкрийте сторінку API і перейдіть на вкладку Custom API.
- У полі опису вкажіть, де використовуватиметься ключ (наприклад, Hotspot – Головний корпус), і збережіть. HMS згенерує ключ із 13 символів.
- Скопіюйте ключ зі списку. Він прив’язаний до готелю й не має строку дії; ключ стає недійсним, щойно його видалено зі списку.
export HMS_API_KEY="017f1daf2d139"Також запишіть ідентифікатор готелю в HMS; у прикладах він передається як HotelCode: 1000. Цей заголовок не використовується для перевірки, але в журналах за ним видно, для якого готелю виконувався запит.
2. Отримайте список#
Ендпоінт викликається методом POST і не приймає тіла:
curl -X POST "https://test.hms.gen.tr/public/json/customer/inhotel" \
-H "ApiKey: $HMS_API_KEY" \
-H "HotelCode: 1000"const res = await fetch("https://test.hms.gen.tr/public/json/customer/inhotel", {
method: "POST",
headers: {
"ApiKey": process.env.HMS_API_KEY,
"HotelCode": "1000"
}
});
if (res.status === 401) throw new Error("Invalid ApiKey");
const data = await res.json();
for (const g of data.otelde) {
console.log(g.roomName, g.firstName, g.lastName, new Date(g.checkout * 1000));
}$ch = curl_init('https://test.hms.gen.tr/public/json/customer/inhotel');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'ApiKey: ' . getenv('HMS_API_KEY'),
'HotelCode: 1000',
],
]);
$body = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 401) {
throw new RuntimeException('Invalid ApiKey');
}
$data = json_decode($body, true);
foreach ($data['otelde'] as $g) {
echo $g['roomName'], ' · ', $g['firstName'], ' ', $g['lastName'], ' · ', date('d.m.Y', $g['checkout']), "\n";
}3. Прочитайте відповідь#
Кожен гість, який проживає в готелі, — окремий запис у масиві otelde. Скорочений приклад для двох гостей в одному номері:
{
"success": 1,
"otelde": [
{
"unique": 58211,
"firstName": "AYŞE",
"lastName": "DEMİR",
"identityNumber": "11111111110",
"birthDate": "14.03.1985",
"roomID": 4,
"roomName": "104",
"checkin": 1788863400,
"checkout": 1788998400,
"rezervasyon_id": 282799
},
{
"unique": 58212,
"firstName": "MEHMET",
"lastName": "DEMİR",
"identityNumber": "22222222220",
"birthDate": "02.11.1982",
"roomID": 4,
"roomName": "104",
"checkin": 1788863400,
"checkout": 1788998400,
"rezervasyon_id": 282799
}
]
}uniqueунікальний для кожного гостя; прив’язуйте до нього користувача hotspot.rezervasyon_idоднаковий у гостей, які проживають в одному номері.- Номер кімнати, який запитують на порталі, порівнюється з
roomName, а прізвище — зlastName. Значення зазвичай записано великими літерами. checkin— момент заселення;checkout— запланована дата виїзду (00:00 UTC) без часу доби. Щоб отримати кінець сеансу, додайте розрахунковий час готелю.- Якщо в готелі нікого немає,
otelde— порожній масив, аsuccessоднаково дорівнює1.
Що далі#
- Процес перевірки гостей — правила зіставлення, тривалість сеансу, періодична синхронізація
- Автентифікація — керування ключами та відповідь 401
- Довідник API — опис кожного поля