認証
Online Booking API へのアクセスには、HMS が発行するパートナー認証情報を使用します。ログインエンドポイントは apiKey と apiSecret と引き換えにトークンを発行します。以降のすべてのリクエストでは、このトークンを Authorization: Bearer として送信します。詳しくは認証ガイドを参照してください。
ログインしてトークンを取得#
POST
/external/public/login認証不要 · ボディ: application/x-www-form-urlencoded または multipart/form-data
パートナー認証情報を検証し、パートナーがそのホテルへのアクセス権を持っていればトークンを発行します。トークンは1つのホテルに紐づくため、ホテルごとに個別にログインしてください。
フォームフィールド
apiKeystring必須HMS が発行するパートナーキー。
apiSecretstring必須パートナーシークレット。必ずサーバー側でのみ保管してください。
hotelCodeinteger必須ホテルの HMS ID(
hotelID)。パートナーがこのホテルへのアクセス権を持っている必要があります。hotelSeoUrlstringHMS におけるホテルの SEO スラッグ。
hotelCode の代わりにこれを使うのは HMS 自身の予約エンジンのみです。サードパーティの連携では hotelCode を送信してください。レスポンス
200 トークンとホテル情報。トークンの有効期間は7日間です。期限が切れる前に再ログインして更新してください。
successboolean処理結果フラグ。
hotelCodestringトークンが紐づくホテル ID。
tokenstringBearer トークン。不透明な値として扱い、中身を解析しないでください。
hotelSeoUrlstring | nullホテルの SEO スラッグ。
エラーレスポンス
- 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"
}