I'm new with Guzzle and I'm trying to make a call to Google API with it. I tried in this way with no luck: PHP + Guzzle, Sending Authorization Key in Header
Here is my code:
$client = new Client();
try {
$request = $client->get ( 'https://www.googleapis.com/analytics/v3/data/ga' );
/*setting Authorization token*/
$request->addHeader('authorization', $accessToken);
$query = $request->getQuery();
$query->set('ids', $profileId);
$query->set('start-date', $startDate);
$query->set('end-date', $endDate);
$query->set('metrics', $metrics);
$response = $request->send();
$response = $response->json();
var_dump($response);
} catch (ClientErrorResponseException $e) {
var_dump($e->getMessage ());
}
I'm always getting this response:
"Client error response
[status code] 401
[reason phrase] Unauthorized
[url] https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3AXXXXXX&start-date=2014-07-01&end-date=2014-07-01&metrics=ga%3Asessions"
I've tried the same call using PHP curl and I'm getting the correct response, but I'd like to use Guzzle in this project.
What is the correct way to do this
array ( CURLOPT_HTTPHEADER => array( 'Authorization: Bearer ' . $accessToken ))
with Guzzle?
The problem you are having is that a Request to the Google Analytics API is sent as a Get. Adding a header is used for a POST.
$request->addHeader('authorization', $accessToken);
The following will add the accessToken as part of the Get in your request.
$query->set('oauth_token', $accessToken);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With