360 Secure SkillHub
360 安全技能中心

Booking Extranet Manager

封装本地 Python CLI,借助宿主机已安装的 Google Chrome 远程调试连接 Booking.com 合作方后台,提供列出房源、下载预订、查看与回复住客消息、更新房价等命令,结果以 JSON 输出或写出 Excel 文件。

matsei-ruka
matsei-ruka
热度 44.97
最近更新 2026-05-18 12:35:21
分类:自动化依赖:代码执行 / 联网浏览搜索 / 读写文件应用场景:自动化脚本 / 工作流 / CRM / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add booking-extranet-manager
Metadata
name
Booking.com Extranet Manager
description
Manage Booking.com properties — download reservations, list/reply to guest messages, update rates. Wraps a Python CLI that automates the Booking.com extranet via real Chrome.
version
1.1.0
tags
["booking","hospitality","reservations","property-management","automation"]
author
matsei-ruka
source
https://github.com/matsei-ruka/booking-extranet-bot
credentials
[{"name":"BOOKING_USERNAME","description":"Booking.com partner extranet login name","required":true},{"name":"BOOKING_PASSWORD","description":"Booking.com partner extranet password","required":true},{"name":"PULSE_TOTP_SECRET","description":"Optional TOTP secret for automated 2FA (if not using SMS)","required":false}]
env
[{"name":"BOT_DIR","description":"Absolute path to the booking-extranet-bot directory","required":true},{"name":"BOOKING_HOTEL_ID","description":"Default property hotel ID (optional, used when --hotel-id is omitted)","required":false}]
scope
[{"browser_automation":"Uses Google Chrome via remote debugging (CDP on localhost:9222)"},{"local_storage":"Persists browser session in .chrome-data/ directory to avoid repeated login/2FA"},{"network":"Connects only to admin.booking.com and account.booking.com"},{"filesystem":"Reads .env for credentials, writes Excel files to ./downloads/"}]

Booking.com Extranet Manager

Automate Booking.com property management through a Python CLI tool. Uses your locally installed Google Chrome (not a headless browser) to interact with the Booking.com partner extranet, avoiding bot detection.

Security Notes

  • Credentials are stored locally in a .env file in the bot directory — never transmitted elsewhere.
  • Browser session is persisted in .chrome-data/ so login + SMS 2FA only happens once. Delete this directory to clear the session.
  • Chrome remote debugging runs on localhost:9222 only — not exposed to the network.
  • The bot connects exclusively to admin.booking.com and account.booking.com.

Prerequisites

The CLI tool must be installed and configured on the host machine:

git clone https://github.com/matsei-ruka/booking-extranet-bot.git
cd booking-extranet-bot
python3 -m venv venv
source venv/bin/activate   # Linux/macOS
pip install -r requirements.txt

Then create a .env file with your credentials:

BOOKING_USERNAME=your_login_name
BOOKING_PASSWORD=your_password
BOOKING_HOTEL_ID=your_default_hotel_id  # optional

Google Chrome must be installed on the host machine.

Environment

  • BOT_DIR: Absolute path to the booking-extranet-bot directory
  • Python venv at $BOT_DIR/venv/bin/python3
  • CLI entry point: $BOT_DIR/cli.py

All commands output JSON to stdout. Logs go to stderr.

Available Commands

List Properties

Get all properties with hotel IDs and unread message counts.

cd $BOT_DIR && source venv/bin/activate && python3 cli.py list-properties

Returns:

{
  "status": "success",
  "action": "list-properties",
  "count": 3,
  "properties": [
    {"hotel_id": "10353912", "name": "Property Name", "unread_messages": 4}
  ]
}

Download Reservations

Download reservations for a date range. Use --json to get data directly, or omit it to save an Excel file.

# As JSON (for processing)
cd $BOT_DIR && source venv/bin/activate && python3 cli.py download-reservations --start 2026-03-01 --end 2026-09-30 --json

# As Excel file
cd $BOT_DIR && source venv/bin/activate && python3 cli.py download-reservations --start 2026-03-01 --end 2026-09-30

Options:

  • --start YYYY-MM-DD (required): Start date
  • --end YYYY-MM-DD (required): End date
  • --date-type: arrival (default), departure, or booking
  • --json: Return data as JSON instead of Excel
  • --output-dir: Directory for Excel file (default: ./downloads)

List Messages

List guest messages for a property. Defaults to unanswered.

cd $BOT_DIR && source venv/bin/activate && python3 cli.py list-messages --hotel-id 10353912

Options:

  • --hotel-id (required): Property hotel ID from list-properties
  • --filter: unanswered (default), sent, or all

Read Message

Open and read a specific conversation with reservation details.

cd $BOT_DIR && source venv/bin/activate && python3 cli.py read-message --hotel-id 10353912 --index 0

Options:

  • --hotel-id (required): Property hotel ID
  • --index (required): Message index from list-messages (0-based)

Send Message

Reply to a guest conversation. Always use list-messages first to get the correct index.

cd $BOT_DIR && source venv/bin/activate && python3 cli.py send-message --hotel-id 10353912 --index 0 --message "Thank you for your message"

Options:

  • --hotel-id (required): Property hotel ID
  • --index (required): Message index from list-messages (0-based)
  • --message (required): Reply text

Update Rates

Update room rates from the CSV pricing file.

cd $BOT_DIR && source venv/bin/activate && python3 cli.py update-rates
cd $BOT_DIR && source venv/bin/activate && python3 cli.py update-rates --hotel-id 13616005

Typical Workflow

  1. List properties to get hotel IDs and see which have unread messages
  2. List messages for properties with unread messages
  3. Read each conversation to understand the guest's request
  4. Send replies as appropriate
  5. Download reservations periodically to track bookings

First Run

On first run, Chrome opens and you must complete the login (including SMS 2FA). Subsequent runs reuse the session — no login needed until the session expires.