API Google qpx Express

140 views
Skip to first unread message

Francis Rodrigues

unread,
Jun 1, 2015, 9:51:55 AM6/1/15
to php-b...@googlegroups.com
Bom dia caros membros, como vão? :)

Estou com dúvidas se meu uso da API do Google Flights está sendo bem escrito.

Eu não sei dizer o problema, mas via API eu não consegui buscar informações de Vôos, já pelo site de testes que a documentação informa, eu consegui buscar.
O engraçado é que peguei o mesmo XML que o site de teste preenche, refatorei com mais algumas informações obrigatórias, informei meus dados de API e deu erro de requisição.


Ontém a noite dei uma olhada rápida e criei um projetinho rapido, onde meu código segue abaixo:

** Desculpem a sintaxe. A princípio será um código simples.


<?php

$jsonReq
= <<<TEXT
{
 
"request": {
 
"passengers": {
 
"kind": "qpxexpress#passengerCounts",
 
"adultCount": 2,
 
"childCount": 0,
 
"infantInLapCount": 0,
 
"infantInSeatCount": 0,
 
"seniorCount": 0
 
},
 
"slice": [
 
{
 
"kind": "qpxexpress#sliceInput",
 
"origin": "CWB",
 
"destination": "FOR",
 
"date": "2015-06-20",
 
"maxStops": 4,
 
"maxConnectionDuration": 300,
 
"preferredCabin": "COACH"
 
"permittedDepartureTime": {
 
"kind": "qpxexpress#timeOfDayRange",
 
"earliestTime": "06:00",
 
"latestTime": "23:00"
 
},
 
"permittedCarrier": [
 
"AA",
 
"AD",
 
"G3",
 
"JJ"
 
],
 
"prohibitedCarrier": [
 
"JJ"
 
],
 
"alliance": ""
 
}
 
],
 
"maxPrice": "BRL1520.00",
 
"saleCountry": "BR",
 
"refundable": false,
 
"solutions": 20
 
}
}

TEXT
;

$req
= json_decode($jsonReq, true);


## oauth2

$urlAuth
= 'https://accounts.google.com/o/oauth2/auth';
$dataAuth
= array(
 
'response_type' => 'code',
 
'client_id' => 'xxxxxxxx-xxxxxxx-j2bbg8unmcsot1a.apps.googleusercontent.com',
 
'redirect_uri' => 'http://mydomain.net/oauth2callback',
 
'type' => 'online',
 
'scope' => 'https://www.googleapis.com/auth/plus.login',
);

/**
 * @todo O oAuth2 do Google não deixa eu testar via localhost,
 * então terei que testar no meu domínio
 **/

$resp
= cURL($urlAuth, $dataAuth);
print_r
($resp); exit;


## Google Flights - qpx Express
$url
= 'https://www.googleapis.com/qpxExpress/v1/trips/search';
$url
.= '?key=xxxxxxxx';


$resp
= cURL($url, $req);
print_r
($resp);

/**
 * @todo Funcao para fazer o CURL para mim
 */

function cURL($url, $data)
{
 
// Get cURL resource
 $curl
= curl_init();

 
// Set some options - we are passing in a useragent too here
 curl_setopt_array
($curl, array(
 CURLOPT_RETURNTRANSFER
=> 1,
 CURLOPT_URL
=> $url,
 CURLOPT_USERAGENT
=> getenv('USER_AGENT'),

 
// CURLOPT_POST => 1,
 CURLOPT_POST
, count($data),
 CURLOPT_POSTFIELDS
=> $data
 
));

 
// Send the request & save response to $resp
 $resp
= curl_exec($curl);

 
// Close request to clear up some resources
 curl_close
($curl);

 
return $resp;
}


Gostaria de um Help pessoal.
Obrigado desde já! :)

Luciano da Silva Martins

unread,
Jun 1, 2015, 10:27:12 AM6/1/15
to php-b...@googlegroups.com
Olha num sei nd sobre essa API, mas vc está puxando de onde: local ou remoto? Se for local será q num poderia ser a config do arq. PHP.INI? tipow esse curl tem q habilitar extensão.

Francis Rodrigues

unread,
Jun 1, 2015, 10:28:34 AM6/1/15
to php-b...@googlegroups.com
Oi Luciano,

A extensão já está habilitada! ;)



--
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "php-brasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/php-brasil/Q1EYpU7L8JA/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para php-brasil+...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para php-b...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/php-brasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Francis Rodrigues

unread,
Jun 1, 2015, 12:20:34 PM6/1/15
to php-b...@googlegroups.com
Por ser uma API não muito falada nos grupos, será dificil encontrar alguém a me ajudar, mas espero conseguir tirar minhas dúvidas. :)
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para php-brasil+unsubscribe@googlegroups.com.

Daniel Sá

unread,
Jun 1, 2015, 1:24:09 PM6/1/15
to php-b...@googlegroups.com
Eu tive dois problemas básicos quando usei pela primeira vez.. 


1º -> Tive que colocar isso no .htaccess mesmo habilitando a exenção -> php_value allow_url_fopen On
2º -> A url não abria pois pedia pra confirmar a exceção de segurança por causa do certificado.

Depois de resolver isso, funcionou perfeitamente.


Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para php-brasil+...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para php-b...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/php-brasil.
Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem porque está inscrito no grupo "php-brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para php-brasil+...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para php-b...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/php-brasil.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Por favor, deixe-me saber se você tem alguma outra pergunta a fazer, ou se há algo mais em que eu possa ajuda-lo(a).

Muito Obrigado! 

Francis Rodrigues

unread,
Jun 1, 2015, 1:43:39 PM6/1/15
to php-b...@googlegroups.com
Obrigado pela dica Daniel!
Vou testar em casa a noite e informarei se consegui utilizar.

Francis Rodrigues

unread,
Jun 1, 2015, 9:12:50 PM6/1/15
to php-b...@googlegroups.com
Pessoal, antes de tentar habilitar alguma coisa no servidor, gostaria que me ajudassem a tirar essa dúvida.

Tenho a URL no meu site:


Essa url aí já deveria me retornar o callback do Google, mas me retorna um HTML bugado, onde o link é quem faz a autenticacão. 0.o


A url de http://tosystems.net/oauth2callback eu ainda não pesquisei como criar sem afetar outros servicos no meu site.


Em segunda-feira, 1 de junho de 2015 10:51:55 UTC-3, Francis Rodrigues escreveu:

Francis Rodrigues

unread,
Jun 1, 2015, 9:42:20 PM6/1/15
to php-b...@googlegroups.com
Olá pessoal, fiz algumas melhorias no código:


## Google Flights - qpx Express


$url
= 'https://www.googleapis.com/qpxExpress/v1/trips/search';

$url
.= '?key=xxxxxxxxxxx';

$resp = cURL($url, $jsonReq);
print_r($resp);

function cURL($url, $data, $type = 'application/json')
{
// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
   CURLOPT_RETURNTRANSFER => 1,
   CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data)
    ),
   CURLOPT_URL => $url,
   CURLOPT_USERAGENT => getenv('HTTP_USER_AGENT'),
   // CURLOPT_POST => 1,
   CURLOPT_POST, count($data),
   CURLOPT_POSTFIELDS => $data
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);

return $resp;
}


E não está me retornando nenhum resultado normal.
Tem algo errado 0.o

{
 
"kind": "qpxExpress#tripsSearch",
 
"trips": {
 
"kind": "qpxexpress#tripOptions",
 
"requestId": "xxxxxxxxxx",
 
"data": {
   
"kind": "qpxexpress#data"
 
}
 
}
}




Em segunda-feira, 1 de junho de 2015 10:51:55 UTC-3, Francis Rodrigues escreveu:

Francis Rodrigues

unread,
Jun 2, 2015, 10:55:02 PM6/2/15
to php-b...@googlegroups.com
Esse último código que postei funciona perfeitamente, bastava eu trocar o destino pra SAO que é o código de SP e funcionou. :)

Luciano da Silva Martins

unread,
Jun 3, 2015, 4:24:56 AM6/3/15
to php-b...@googlegroups.com
Mano Francis qual a finalidade dessa API?


Em segunda-feira, 1 de junho de 2015 10:51:55 UTC-3, Francis Rodrigues escreveu:

Francis Rodrigues

unread,
Jun 3, 2015, 8:00:02 AM6/3/15
to php-b...@googlegroups.com

Bom dia Luciano!
Eu havia dito no inicio do tópico, não?!
Mesmo assim vou dizer:
É a Api de consulta de vôos do Google.
Quem me falou desse serviço foi um amigo com interesses em consultar o próximo vôo para fora do país em um aplicativo que fosse feito por nós.

--
Reply all
Reply to author
Forward
0 new messages