You are here

function google_analytics_reports_api_authenticate in Google Analytics Reports 8.3

Finish authentication.

1 call to google_analytics_reports_api_authenticate()
GoogleAnalyticsReportsApiAdminSettingsForm::buildForm in google_analytics_reports_api/src/Form/GoogleAnalyticsReportsApiAdminSettingsForm.php
Form constructor.

File

google_analytics_reports_api/google_analytics_reports_api.module, line 54
Implements the API through which Google Analytics data can be accessed.

Code

function google_analytics_reports_api_authenticate($code) {
  $config = \Drupal::config('google_analytics_reports_api.settings');
  $state = \Drupal::state();
  $redirect_uri = Url::fromRoute('google_analytics_reports_api.settings')
    ->setAbsolute()
    ->toString();
  try {
    $google_analytics_reports_api_feed = new GoogleAnalyticsReportsApiFeed();
    $google_analytics_reports_api_feed
      ->finishAuthentication($config
      ->get('client_id'), $config
      ->get('client_secret'), $redirect_uri);
    $state
      ->setMultiple([
      'google_analytics_reports_api.access_token' => $google_analytics_reports_api_feed->accessToken,
      'google_analytics_reports_api.expires_at' => $google_analytics_reports_api_feed->expiresAt,
      'google_analytics_reports_api.refresh_token' => $google_analytics_reports_api_feed->refreshToken,
    ]);
    \Drupal::messenger()
      ->addMessage(t('You have been successfully authenticated.'));
  } catch (Exception $e) {
    \Drupal::messenger()
      ->addMessage(t('There was an authentication error. Message: @message.', [
      '@message' => $e
        ->getMessage(),
    ]), 'error', FALSE);
    \Drupal::logger('google_analytics_reports_api')
      ->error('There was an authentication error. Message: @message.', [
      '@message' => $e
        ->getMessage(),
    ]);
  }
}