V3 "include_ex_data" not returning "estimated_blockin_time"

Hi there,

I am using Ruby+savon, and my V3 “FlightInfoStatus” request works fine, I pass in the ident of the flight, A-OK.

But after asking for include_ex_data set to 1, “1”, true, “true” – the only field I need “estimated_blockin_time” does not come through.

client = Savon::Client.new(
wsdl: “https://flightxml.flightaware.com/soap/FlightXML3/wsdl”,
basic_auth: [USERNAME, API_KEY]
)

client.call(:flight_info_status, message: {
ident: ident,
include_ex_data: 1
})

The response only contains these keys:
response.to_hash[:flight_info_status_results][:flight_info_status_result][:flights].last.keys

[:ident,
:fa_flight_id,
:airline,
:airline_iata,
:flightnumber,
:tailnumber,
:type,
:codeshares,
:blocked,
:diverted,
:cancelled,
:origin,
:destination,
:filed_ete,
:route,
:filed_altitude,
:display_filed_altitude,
:filed_airspeed_kts,
:distance_filed,
:filed_departure_time,
:estimated_departure_time,
:actual_departure_time,
:departure_delay,
:filed_arrival_time,
:estimated_arrival_time,
:actual_arrival_time,
:arrival_delay,
:status,
:progress_percent,
:aircrafttype,
:full_aircrafttype,
:inbound_fa_flight_id,
:adhoc]

What am I doing wrong?

How reliable is this field, because V2 “estimated_arrival_time” is NOT a Gate time and generally does not match the FlightAware website.

Thanks

Oh bloody hell – this is just because I didn’t buy enough of the API. I used Bronze to test and I need Silver to proceed. It would be nicer if there was an error when I ask for “include_ex_data” like 403 Payment Required. Not ideal.

OK I upgraded my plan to Silver to get the gate data, but the API still does NOT return these fields. Help.

Hello,

In this case it sounds like the include_ex_data parameter is not actually being sent as part of the request, otherwise a HTTP 402 response with error message would be received instead of a flightInfoStatus response.

Using syntax similar to that of the Ruby/Savon XML3 example should help.

That’s how I’m sending it, and how else would the ident come through? Something else is wrong.

This is my code in the style of your example and fields come back, just not the useful “include_ex_data” ones (that I am paying for BTW)

client = Savon::Client.new(

wsdl: SOAP_URL,

basic_auth: [USERNAME, API_KEY]

)

response = client.call(:flight_info_status, message: {

:ident => "AAL2",

:include_ex_data => 1

})

puts response.to_hash[:flight_info_status_results][:flight_info_status_result][:flights].last.keys.sort

Could it be because I upgraded mid stream that you are rejecting my request or not properly authorizing it? The message payload is dead simple, you use an integer as a boolean, I am sending {include_ex_data: 1}. Why would ident come through and not include_ex_data – it’s in a flat hash with nothing else.

Wow ok, so your example is wrong. When I send {:ident => "AAL2", :include_ex_data => 1} it does NOT work, but when I use String keys (counter to your example) it DOES work: {"ident" => "AAL2", "include_ex_data" => 1}. Something about your parameter matching code is not right.

If indeed the API responds differently to String keys versus Symbol keys, it would be better if the documentation noted this and only suggested String keys in the example. Considering the inconsistent treatment between ident and include_ex_data, there is likely something amiss.