public function GoogleAnalyticsCounterAuthManager::newGaFeed in Google Analytics Counter 8.3
Instantiate a new GoogleAnalyticsCounterFeed object.
Return value
object GoogleAnalyticsCounterFeed object to authorize access and request data from the Google Analytics Core Reporting API.
Overrides GoogleAnalyticsCounterAuthManagerInterface::newGaFeed
1 call to GoogleAnalyticsCounterAuthManager::newGaFeed()
- GoogleAnalyticsCounterAuthManager::getWebPropertiesOptions in src/
GoogleAnalyticsCounterAuthManager.php - Get the list of available web properties.
File
- src/
GoogleAnalyticsCounterAuthManager.php, line 112
Class
- GoogleAnalyticsCounterAuthManager
- Class GoogleAnalyticsAuthManager.
Namespace
Drupal\google_analytics_counterCode
public function newGaFeed() {
$config = $this->config;
// If the access token is still valid, return an authenticated GAFeed.
if ($this->state
->get('google_analytics_counter.access_token') && time() < $this->state
->get('google_analytics_counter.expires_at')) {
return new GoogleAnalyticsCounterFeed($this->state
->get('google_analytics_counter.access_token'));
}
elseif ($this->state
->get('google_analytics_counter.refresh_token')) {
$client_id = $config
->get('general_settings.client_id');
$client_secret = $config
->get('general_settings.client_secret');
$refresh_token = $this->state
->get('google_analytics_counter.refresh_token');
try {
$gac_feed = new GoogleAnalyticsCounterFeed();
$gac_feed
->refreshToken($client_id, $client_secret, $refresh_token);
$this->state
->setMultiple([
'google_analytics_counter.access_token' => $gac_feed->accessToken,
'google_analytics_counter.expires_at' => $gac_feed->expiresAt,
]);
return $gac_feed;
} catch (Exception $e) {
$this->messenger
->addError($this
->t('There was an authentication error. Message: %message', [
'%message' => $e
->getMessage(),
]));
return NULL;
}
}
elseif (isset($_GET['code'])) {
try {
$gac_feed = new GoogleAnalyticsCounterFeed();
$gac_feed
->finishAuthentication($config
->get('general_settings.client_id'), $config
->get('general_settings.client_secret'), $config
->get('general_settings.redirect_uri'));
$this->state
->setMultiple([
'google_analytics_counter.access_token' => $gac_feed->accessToken,
'google_analytics_counter.expires_at' => $gac_feed->expiresAt,
'google_analytics_counter.refresh_token' => $gac_feed->refreshToken,
]);
} catch (Exception $e) {
$this->messenger
->addError($this
->t('There was an authentication error. Message: %message', [
'%message' => $e
->getMessage(),
]));
return NULL;
}
}
return NULL;
}