切换生产环境后Amadeus航班状态API仍返回测试格式数据求助
问题分析与解决方案
核心问题
你当前调用的是航班时刻表API(/v2/schedule/flights),而非所需的On-Demand Flight Status实时航班状态API——这是只能获取计划时间、拿不到延误信息的根本原因,从返回结果的self链接可明确验证这一点。
具体解决方案
1. 修正API端点
On-Demand Flight Status的正确生产环境端点为:
GET https://api.amadeus.com/v2/flights/on-demand-status
替换当前使用的/v2/schedule/flights端点后重新发起请求。
2. 验证权限配置
- 登录Amadeus开发者控制台,确认生产环境API Key/Secret对应的应用已开通On-Demand Flight Status API的访问权限(测试环境默认开通的权限,生产环境需单独申请启用)。
- 可解码认证返回的JWT Token,检查是否包含该API的访问范围。
3. 核对请求参数
On-Demand Flight Status API必填参数:
carrierCode:航司IATA代码(如FR)flightNumber:航班号(如4231)scheduledDepartureDate:计划出发日期(格式YYYY-MM-DD)- 建议补充:
departureAirportCode/arrivalAirportCode,避免同航班号不同航线的歧义
4. 测试数据可用性
部分低成本航司(如瑞安航空FR)的实时状态数据可能未完全接入Amadeus生产库,可先测试主流航司(如汉莎LH、英航BA)的已执行航班,验证是否能获取实际起降时间(ATD/ATA)及延误信息。
你提供的返回示例
计划航班响应
{ "meta" : { "count" : 1, "links" : { "self" : "https://api.amadeus.com/v2/schedule/flights?carrierCode=FR&flightNumber=4231&scheduledDepartureDate=2023-10-25" } }, "data" : [ { "type" : "DatedFlight", "scheduledDepartureDate" : "2023-10-25", "flightDesignator" : { "carrierCode" : "FR", "flightNumber" : 4231 }, "flightPoints" : [ { "iataCode" : "BGY", "departure" : { "timings" : [ { "qualifier" : "STD", "value" : "2023-10-25T12:00+02:00" } ] } }, { "iataCode" : "BVA", "arrival" : { "timings" : [ { "qualifier" : "STA", "value" : "2023-10-25T13:40+02:00" } ] } } ], "segments" : [ { "boardPointIataCode" : "BGY", "offPointIataCode" : "BVA", "scheduledSegmentDuration" : "PT1H40M", "partnership" : { "operatingFlight" : { "carrierCode" : "AL" } } } ], "legs" : [ { "boardPointIataCode" : "BGY", "offPointIataCode" : "BVA", "aircraftEquipment" : { "aircraftType" : "73Q" }, "scheduledLegDuration" : "PT1H40M" } ] } ] }
已降落航班响应
{ "meta" : { "count" : 1, "links" : { "self" : "https://api.amadeus.com/v2/schedule/flights?carrierCode=FR&flightNumber=3653&scheduledDepartureDate=2023-10-25" } }, "data" : [ { "type" : "DatedFlight", "scheduledDepartureDate" : "2023-10-25", "flightDesignator" : { "carrierCode" : "FR", "flightNumber" : 3653 }, "flightPoints" : [ { "iataCode" : "BGY", "departure" : { "timings" : [ { "qualifier" : "STD", "value" : "2023-10-25T07:55+02:00" } ] } }, { "iataCode" : "BRI", "arrival" : { "timings" : [ { "qualifier" : "STA", "value" : "2023-10-25T09:25+02:00" } ] } } ], "segments" : [ { "boardPointIataCode" : "BGY", "offPointIataCode" : "BRI" } ], "segments" : [ { "boardPointIataCode" : "BGY", "offPointIataCode" : "BRI", "scheduledSegmentDuration" : "PT1H30M", "partnership" : { "operatingFlight" : { "carrierCode" : "AL" } } } ], "legs" : [ { "boardPointIataCode" : "BGY", "offPointIataCode" : "BRI", "aircraftEquipment" : {}, "scheduledSegmentDuration" : "PT1H30M", "partnership" : { "operatingFlight" : { "carrierCode" : "AL" } } } ], "legs" : [ { "boardPointIataCode" : "BGY", "offPointIataCode" : "BRI", "aircraftEquipment" : { "aircraftType" : "73Q" }, "scheduledLegDuration" : "PT1H30M" } ] } ] }
内容的提问来源于stack exchange,提问作者Alex Faiella
相关产品推荐
相关产品推荐

