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