You are here

public function GoogleAnalyticsReportsApiFeed::revokeToken in Google Analytics Reports 8.3

OAuth step #1: Fetch request token.

Revoke an OAuth2 access token or refresh token. This method will revoke the current access token, if a token isn't provided.

Parameters

string|null $token: The token (access token or a refresh token) that should be revoked.

Return value

boll Returns True if the revocation was successful, otherwise False.

File

google_analytics_reports_api/src/GoogleAnalyticsReportsApiFeed.php, line 381

Class

GoogleAnalyticsReportsApiFeed
Class GoogleAnalyticsReportsApiFeed.

Namespace

Drupal\google_analytics_reports_api

Code

public function revokeToken($token = NULL) {
  if (!$token) {
    $token = $this->refreshToken ? $this->refreshToken : $this->accessToken;
  }
  try {
    $client = new Client();
    $response = $client
      ->post(self::OAUTH2_TOKEN_URI, [
      'form_params' => [
        'token' => $token,
      ],
    ]);
    $this->response = $response
      ->getBody()
      ->getContents();
    if ($response
      ->getStatusCode() == 200) {
      $this->accessToken = NULL;
      return TRUE;
    }
  } catch (ClientException $e) {
    $response = $e
      ->getResponse();
    $this->response = $response
      ->getBody()
      ->getContents();
    $error_vars = [
      '@code' => $response
        ->getStatusCode(),
      '@message' => $e
        ->getMessage(),
      '@details' => print_r(json_decode($this->response), TRUE),
    ];
    $this->error = $this
      ->t('<strong>Code</strong>: @code, <strong>Error</strong>: @message, <strong>Message</strong>: <pre>@details</pre>', $error_vars);
    $this->loggerFactory
      ->error('<strong>Code</strong>: @code, <strong>Error</strong>: <pre>@details</pre>', $error_vars);
  }
  return FALSE;
}