名称: airfrance-afkl
描述: 使用法航荷航开放数据 API(航班状态)追踪法国航空航班。当用户提供航班号/日期(例如,2026-01-29 的 AF007)并希望进行监控、接收提醒(延误/登机口/飞机变更)或分析(前序航班链、飞机尾号 → 客舱新旧程度 / Wi‑Fi)时使用。也适用于在 API 速率限制内设置或调整轮询计划时使用。
1) 创建 API 密钥(及可选的密钥)
* 注册地址:https://developer.airfranceklm.com
* 订阅所需的开放数据产品(至少需要 Flight Status API)
* 生成凭证(API 密钥;部分账户还提供 API 密钥)
2) 提供 API 凭证(请勿打印):
* 首选:环境变量 AFKL_API_KEY(及可选的 AFKL_API_SECRET)
* 或:状态目录(CLAWDBOT_STATE_DIR 或 ./state)中的文件:
* afkl_api_key.txt (权限设为 600)
* afkl_api_secret.txt (权限设为 600,可选)
3) 查询航班状态:
* 运行:node skills/airfrance-afkl/scripts/afkl_flightstatus_query.mjs --carrier AF --flight 7 --origin JFK --dep-date 2026-01-29
注意:
* 发送请求头 Accept: */*(API 返回 application/hal+json)。
* 遵守速率限制:每秒 ≤ 1 次请求。进行多次调用时,请在两次调用间休眠约 1100 毫秒。
当用户希望获得主动更新时使用。
node skills/airfrance-afkl/scripts/afkl_watch_flight.mjs --carrier AF --flight 7 --origin JFK --dep-date 2026-01-29功能说明:
* 获取指定日期范围内的运营航班。
* 仅在发生有意义的变更时发出单条消息。
* 同时追踪 前序航班链 (flightRelations.previousFlightData.id),可配置追踪深度,并在前序航段延误/取消时发出警报。
轮询策略(默认):
* 起飞前 >36 小时:最多每 60 分钟 一次
* 起飞前 36 小时 → 12 小时:每 30 分钟 一次
* 起飞前 12 小时 → 3 小时:每 15 分钟 一次
* 起飞前 3 小时 → 起飞:每 5–10 分钟 一次(保持在每日配额内)
* 起飞后:每 30 分钟 一次,直至到达
实现细节:每 5–15 分钟运行一次 cron 任务,但脚本会使用状态文件进行自我节流,以便在未到轮询时间时不会调用 API。当无变化时,监视器不输出任何内容(因此 cron 作业可以仅在标准输出非空时发送通知)。
面向用户的推荐格式:
* AF7 demain / AF7 jeudi
解释规则:
* 日期始终指 起飞日期(而非到达日期)。
实现说明:
* 除非明确知道出发地时区,否则将相对日期词转换为用户所在时区的起飞日期。
* 当存在歧义时(例如长途航班跨越午夜),如果已知出发地,则优先使用出发地当地时间对应的日期。
(对于脚本,仍需传递 --origin + --dep-date YYYY-MM-DD。)
详见 references/fields.md:
* flightRelations(前序/后续航班)
* places.*(航站楼/登机口/值机区域)
* times.*(计划/预计/最新/实际时间)
* aircraft(机型、注册号)
* “停机位” / 机位类型提示(如存在)
* Wi‑Fi 提示以及如何推断客舱新旧程度
当可获得飞机注册号时:
* 使用尾号推断 子机队 及可能的客舱代际。
* 如果数据表明是较旧的配置(或无 Wi‑Fi),则升舱的价值可能更高或更低。
保持审慎:
* 开放数据通常不暴露确切的座椅型号;请将此视为 尽力而为 的推断。