google example custom busquedas buscador javascript ajax json google-api restful-url

javascript - example - google search api python



¿Cómo recuperar el resultado de Google QPX con Javascript/jQuery(Ajax)? (2)

Ya me he registrado en Google API Console y he configurado la cuenta y la clave API, pero mi pregunta es cómo puedo recuperar los resultados de Google QPX. ¿Qué causa el error a continuación?

Configuración de la consulta json para solicitud de Google

var FlightRequest = { "request": { "slice": [ { "origin": "DCA", "destination": "LAX", "date": "2015-02-11" } ], "passengers": { "adultCount": 1, "infantInLapCount": 0, "infantInSeatCount": 0, "childCount": 0, "seniorCount": 0 }, "solutions": 20, "refundable": false } }

Solicitar los datos y devolverlos.

$.ajax({ url: "https://www.googleapis.com/qpxExpress/v1/trips/search?key=XXXXXXXXXXXXXXXX", type: ''POST'', dataType: ''json'', contentType: ''application/json'', data: FlightRequest, success: function (data) { alert(JSON.stringify(data)); }, error: function(){ alert("Cannot get data"); } });

Error: ya he comprobado mi clave API y es correcta. ¿Qué puede causar este problema?

estado de 400 (Solicitud incorrecta)


He descubierto el problema usando Google Chrome POSTMAN App y Using JSON.stringify(); convertir la solicitud de envío de json de Google (Objeto) en una cadena para $.ajax() ; Aquí hay unos pasos para resolver este problema con jQuery.

Comience creando una Variable para su solicitud de Google json: Usaremos esto con Ajax para recuperar los datos.

var FlightRequest = { "request": { "slice": [ { "origin": "DCA", "destination": "LAX", "date": "2015-02-11" } ], "passengers": { "adultCount": 1, "infantInLapCount": 0, "infantInSeatCount": 0, "childCount": 0, "seniorCount": 0 }, "solutions": 20, "refundable": false } };

Use jQuery $.ajax(); para enviar clave de acceso , tipo de contenido y solicitud de datos

$.ajax({ type: "POST", //Set up your request URL and API Key. url: "https://www.googleapis.com/qpxExpress/v1/trips/search?key=YOUR-API-KEY", contentType: ''application/json'', // Set Content-type: application/json dataType: ''json'', // The query we want from Google QPX, This will be the variable we created in the beginning data: JSON.stringify(FlightRequest), success: function (data) { //Once we get the result you can either send it to console or use it anywhere you like. console.log(JSON.stringify(data)); }, error: function(){ //Error Handling for our request alert("Access to Google QPX Failed."); } });


Entonces este es tu HTML

<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.11.2.min.js"></script> <script src="test.js"></script> </head> <body> <input type="submit" id="submit" value="Submit"> <p id="demo"></p> </body> </html>

Y ahora cree un nuevo archivo llamado test.js y póngalo en el mismo directorio que el archivo HTML. Coloque el código a continuación en su nuevo archivo test.js

y finalmente, agregue su propia clave API en el código (donde dice su clave API)

var sendRequest = function(){ var FlightRequest = { "request": { "slice": [ { "origin": "LHR", "destination": "LAX", "date": "2018-9-10" } ], "passengers": { "adultCount": 1, "infantInLapCount": 0, "infantInSeatCount": 0, "childCount": 0, "seniorCount": 0 }, "solutions": 10, "refundable": false } }; $.ajax({ type: "POST", url: "https://www.googleapis.com/qpxExpress/v1/trips/search?key=YOUR_API_KEY", contentType: ''application/json'', dataType: ''json'', data: JSON.stringify(FlightRequest), success: function (data) { var myJSON = JSON.stringify(data.trips.tripOption[0].pricing[0].saleTotal); console.log(myJSON); document.getElementById("demo").innerHTML = myJSON; }, error: function(){ alert("Access to Google QPX Failed."); } }); } $(document).ready(function(){ $("#submit").click(function(){sendRequest();}); });

Ahora, en el código anterior, recibo 1 precio de LHR a LAX si desea aprender a filtrar los resultados, consulte este enlace