Guzzle Request
try {
$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?';
$client = new Client();
$request = $client->createRequest('GET', $url);
$query = $request->getQuery();
$query['access_token'] = $access_token;
$response = $client->send($request);
$json = $response->json();
if(!empty($json) && !isset($json['error'])) {
return ($json['audience']==GOOGLE_CLIENT_ID);
}
} catch(\Exception $e) {
echo $e->getMessage();
}
Guzzle Response
Client error response
[status code] 400
[reason phrase] Bad Request
[url] https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxx
Simple CURL Request
$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxx';
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,$url);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false); //disable SSL check
$json_response = curl_exec($curl_handle);
curl_close($curl_handle);
$response = json_decode($json_response);
return $response;
Simple CURL Response
stdClass Object
(
[issued_to] => xxx-xxx.apps.googleusercontent.com
[audience] => xxx-xxx.apps.googleusercontent.com
[user_id] => xxx
[scope] => https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me
[expires_in] => 3581
[access_type] => offline
)
I can't figure out whats I am doing wrong with Guzzle, as you can see I got successful result using CURL but got Bad Request error on Guzzle....Any ideas?
UPDATE:
I figure out guzzle is returning actual response when response code is 200/OK, otherwise its returning guzzle exception now I can't figure out how to get the actual response in case of error?