class Callback in Google API PHP Client 8.2
Same name and namespace in other branches
- 8.4 src/Controller/Callback.php \Drupal\google_api_client\Controller\Callback
- 8 src/Controller/Callback.php \Drupal\google_api_client\Controller\Callback
- 8.3 src/Controller/Callback.php \Drupal\google_api_client\Controller\Callback
Google Client Callback Controller.
@package Drupal\google_api_client\Controller
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\google_api_client\Controller\Callback
Expanded class hierarchy of Callback
File
- src/
Controller/ Callback.php, line 17
Namespace
Drupal\google_api_client\ControllerView source
class Callback extends ControllerBase {
/**
* Google API Client.
*
* @var \Drupal\google_api_client\Service\GoogleApiClient
*/
private $googleApiClient;
/**
* Callback constructor.
*
* @param \Drupal\google_api_client\Service\GoogleApiClientService $googleApiClient
* Google API Client.
*/
public function __construct(GoogleApiClientService $googleApiClient) {
$this->googleApiClient = $googleApiClient;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('google_api_client.client'));
}
/**
* Callback URL for Google API Auth.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* Request.
*
* @return array
* Return markup for the page.
*/
public function callbackUrl(Request $request) {
$account_id = $request
->get('id');
$entity_type = $request
->get('type');
if ($entity_type) {
$_SESSION['google_api_client_account_type'] = $entity_type;
}
else {
if (isset($_SESSION['google_api_client_account_type'])) {
$entity_type = $_SESSION['google_api_client_account_type'];
}
else {
$entity_type = 'google_api_client';
}
}
google_api_client_load_library();
if (!class_exists('Google_Client')) {
\Drupal::messenger()
->addError(t("Can't authenticate with google as library is missing check Status report or Readme for requirements"));
return new RedirectResponse('/admin/config/services/google_api_client');
}
if ($account_id == NULL && isset($_SESSION['google_api_client_account_id'])) {
$account_id = $_SESSION['google_api_client_account_id'];
}
elseif ($account_id) {
$_SESSION['google_api_client_account_id'] = $account_id;
}
if ($account_id) {
$google_api_client = \Drupal::entityTypeManager()
->getStorage($entity_type)
->load($account_id);
$this->googleApiClient
->setGoogleApiClient($google_api_client);
$this->googleApiClient->googleClient
->setApplicationName("Google OAuth2");
if ($request
->get('code')) {
$this->googleApiClient->googleClient
->fetchAccessTokenWithAuthCode($request
->get('code'));
$google_api_client
->setAccessToken(json_encode($this->googleApiClient->googleClient
->getAccessToken()));
$google_api_client
->setAuthenticated(TRUE);
$google_api_client
->save();
unset($_SESSION['google_api_client_account_id']);
$response = new RedirectResponse('/admin/config/services/google_api_client');
\Drupal::messenger()
->addMessage(t('Api Account saved'));
return $response;
}
if ($this->googleApiClient->googleClient) {
$auth_url = $this->googleApiClient->googleClient
->createAuthUrl();
$response = new TrustedRedirectResponse($auth_url);
$response
->send();
}
}
// Let other modules act of google response.
\Drupal::moduleHandler()
->invokeAll('google_api_client_google_response', [
$request,
]);
$response = new RedirectResponse('/admin/config/services/google_api_client');
return $response;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Callback:: |
private | property | Google API Client. | |
Callback:: |
public | function | Callback URL for Google API Auth. | |
Callback:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
Callback:: |
public | function | Callback constructor. | |
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |