function _gauth_read_scope_info in Google Auth 8
Same name and namespace in other branches
- 7.2 gauth.module \_gauth_read_scope_info()
- 7 gauth.module \_gauth_read_scope_info()
Helper function which reads the installed library and discovery api to build cache for scopes and names.
3 calls to _gauth_read_scope_info()
- GauthSettingsForm::submitForm in src/
Form/ GauthSettingsForm.php - Form submission handler.
- gauth_google_services_names in ./
gauth.module - Returns a array services api names.
- gauth_google_services_scopes in ./
gauth.module - Returns a array services api versions.
File
- ./
gauth.module, line 103 - Google Auth Api for drupal.
Code
function _gauth_read_scope_info() {
$path = gauth_load_library(TRUE);
$path .= 'vendor/google/apiclient-services/src/Google/Service/';
$files = scandir($path);
$names = array(
'abusiveexperiencereport' => 'Abusive Experience Report API',
'acceleratedmobilepageurl' => 'Accelerated Mobile Pages (AMP) URL API',
'accessapproval' => 'Access Approval API',
'accesscontextmanager' => 'Access Context Manager API',
'adexchangebuyer' => 'Ad Exchange Buyer API',
'adexchangebuyer2' => 'Ad Exchange Buyer API II',
'adexperiencereport' => 'Ad Experience Report API',
'admin' => 'Admin Reports API',
'adsense' => 'AdSense Management API',
'adsensehost' => 'AdSense Host API',
'alertcenter' => 'G Suite Alert Center API',
'analytics' => 'Google Analytics API',
'analyticsreporting' => 'Analytics Reporting API',
'androiddeviceprovisioning' => 'Android Device Provisioning Partner API',
'androidenterprise' => 'Google Play EMM API',
'androidmanagement' => 'Android Management API',
'androidpublisher' => 'Google Play Developer API',
'appengine' => 'App Engine Admin API',
'appsactivity' => 'Drive Activity API',
'bigquery' => 'BigQuery API',
'bigqueryconnection' => 'BigQuery Connection API',
'bigquerydatatransfer' => 'BigQuery Data Transfer API',
'bigqueryreservation' => 'BigQuery Reservation API',
'bigtableadmin' => 'Cloud Bigtable Admin API',
'binaryauthorization' => 'Binary Authorization API',
'blogger' => 'Blogger API',
'books' => 'Books API',
'calendar' => 'Calendar API',
'chat' => 'Hangouts Chat API',
'civicinfo' => 'Google Civic Information API',
'classroom' => 'Google Classroom API',
'cloudasset' => 'Cloud Asset API',
'cloudbilling' => 'Cloud Billing API',
'cloudbuild' => 'Cloud Build API',
'clouddebugger' => 'Stackdriver Debugger API',
'clouderrorreporting' => 'Stackdriver Error Reporting API',
'cloudfunctions' => 'Cloud Functions API',
'cloudidentity' => 'Cloud Identity API',
'cloudiot' => 'Cloud IoT API',
'cloudkms' => 'Cloud Key Management Service (KMS) API',
'cloudprivatecatalog' => 'Cloud Private Catalog API',
'cloudprivatecatalogproducer' => 'Cloud Private Catalog Producer API',
'cloudprofiler' => 'Stackdriver Profiler API',
'cloudresourcemanager' => 'Cloud Resource Manager API',
'cloudscheduler' => 'Cloud Scheduler API',
'cloudsearch' => 'Cloud Search API',
'cloudshell' => 'Cloud Shell API',
'cloudtasks' => 'Cloud Tasks API',
'cloudtrace' => 'Stackdriver Trace API',
'commentanalyzer' => 'Perspective Comment Analyzer API',
'composer' => 'Cloud Composer API',
'compute' => 'Compute Engine API',
'container' => 'Kubernetes Engine API',
'containeranalysis' => 'Container Analysis API',
'content' => 'Content API for Shopping',
'customsearch' => 'CustomSearch API',
'dataflow' => 'Dataflow API',
'datafusion' => 'Cloud Data Fusion API',
'dataproc' => 'Cloud Dataproc API',
'datastore' => 'Cloud Datastore API',
'deploymentmanager' => 'Google Cloud Deployment Manager API',
'dfareporting' => 'DCM/DFA Reporting And Trafficking API',
'dialogflow' => 'Dialogflow API',
'digitalassetlinks' => 'Digital Asset Links API',
'discovery' => 'API Discovery Service',
'dlp' => 'Cloud Data Loss Prevention (DLP) API',
'dns' => 'Google Cloud DNS API',
'docs' => 'Google Docs API',
'domainsrdap' => 'Domains RDAP API',
'doubleclickbidmanager' => 'DoubleClick Bid Manager API',
'doubleclicksearch' => 'Search Ads 360 API',
'drive' => 'Drive API',
'driveactivity' => 'Drive Activity API',
'factchecktools' => 'Fact Check Tools API',
'fcm' => 'Firebase Cloud Messaging API',
'file' => 'Cloud Filestore API',
'firebase' => 'Firebase Management API',
'firebasedynamiclinks' => 'Firebase Dynamic Links API',
'firebasehosting' => 'Firebase Hosting API',
'firebaserules' => 'Firebase Rules API',
'firestore' => 'Cloud Firestore API',
'fitness' => 'Fitness',
'fusiontables' => 'Fusion Tables API',
'games' => 'Google Play Game Services API',
'gamesConfiguration' => 'Google Play Game Services Publishing API',
'gamesManagement' => 'Google Play Game Services Management API',
'genomics' => 'Genomics API',
'gmail' => 'Gmail API',
'groupsmigration' => 'Groups Migration API',
'groupssettings' => 'Groups Settings API',
'healthcare' => 'Cloud Healthcare API',
'homegraph' => 'HomeGraph API',
'iam' => 'Identity and Access Management (IAM) API',
'iamcredentials' => 'IAM Service Account Credentials API',
'iap' => 'Cloud Identity-Aware Proxy API',
'identitytoolkit' => 'Google Identity Toolkit API',
'indexing' => 'Indexing API',
'jobs' => 'Cloud Talent Solution API',
'kgsearch' => 'Knowledge Graph Search API',
'language' => 'Cloud Natural Language API',
'libraryagent' => 'Library Agent API',
'licensing' => 'Enterprise License Manager API',
'logging' => 'Stackdriver Logging API',
'manufacturers' => 'Manufacturer Center API',
'mirror' => 'Google Mirror API',
'ml' => 'Cloud Machine Learning Engine',
'monitoring' => 'Stackdriver Monitoring API',
'oauth2' => 'Google OAuth2 API',
'osconfig' => 'Cloud OS Config API',
'oslogin' => 'Cloud OS Login API',
'pagespeedonline' => 'PageSpeed Insights API',
'people' => 'People API',
'playcustomapp' => 'Google Play Custom App Publishing API',
'plus' => 'Google+ API',
'plusDomains' => 'Google+ Domains API',
'poly' => 'Poly API',
'proximitybeacon' => 'Proximity Beacon API',
'pubsub' => 'Cloud Pub/Sub API',
'redis' => 'Google Cloud Memorystore for Redis API',
'remotebuildexecution' => 'Remote Build Execution API',
'replicapool' => 'Replica Pool API',
'reseller' => 'Enterprise Apps Reseller API',
'run' => 'Cloud Run API',
'runtimeconfig' => 'Cloud Runtime Configuration API',
'safebrowsing' => 'Safe Browsing API',
'script' => 'Apps Script API',
'searchconsole' => 'Google Search Console URL Testing Tools API',
'securitycenter' => 'Cloud Security Command Center API',
'servicebroker' => 'Service Broker API',
'serviceconsumermanagement' => 'Service Consumer Management API',
'servicecontrol' => 'Service Control API',
'servicemanagement' => 'Service Management API',
'servicenetworking' => 'Service Networking API',
'serviceusage' => 'Service Usage API',
'sheets' => 'Google Sheets API',
'siteVerification' => 'Google Site Verification API',
'slides' => 'Google Slides API',
'sourcerepo' => 'Cloud Source Repositories API',
'spanner' => 'Cloud Spanner API',
'speech' => 'Cloud Speech-to-Text API',
'sqladmin' => 'Cloud SQL Admin API',
'storage' => 'Cloud Storage JSON API',
'storagetransfer' => 'Storage Transfer API',
'streetviewpublish' => 'Street View Publish API',
'surveys' => 'Surveys API',
'tagmanager' => 'Tag Manager API',
'tasks' => 'Tasks API',
'testing' => 'Cloud Testing API',
'texttospeech' => 'Cloud Text-to-Speech API',
'toolresults' => 'Cloud Tool Results API',
'tpu' => 'Cloud TPU API',
'translate' => 'Cloud Translation API',
'urlshortener' => 'URL Shortener API',
'vault' => 'G Suite Vault API',
'verifiedaccess' => 'Chrome Verified Access API',
'videointelligence' => 'Cloud Video Intelligence API',
'vision' => 'Cloud Vision API',
'webfonts' => 'Google Fonts Developer API',
'webmasters' => 'Search Console API',
'websecurityscanner' => 'Web Security Scanner API',
'youtube' => 'YouTube Data API',
'youtubeAnalytics' => 'YouTube Analytics API',
'youtubereporting' => 'YouTube Reporting API�',
);
$api_names = array();
foreach ($files as $file) {
if (substr($file, -3) == 'php') {
require_once $path . $file;
$cname = substr($file, 0, -4);
$tname = strtolower($cname);
if (isset($names[$tname])) {
$api_names[$tname] = $names[$tname];
}
else {
$api_names[$tname] = $cname;
}
}
}
$scopes = array();
$classes = array();
$client = Drupal\gauth\Entity\Gauth::getGauthClient();
foreach (get_declared_classes() as $class) {
if (is_subclass_of($class, 'Google_Service')) {
$temp = new ReflectionClass($class);
$instance = $temp
->newInstance($client);
$aname = $instance->serviceName;
if (!isset($api_names[$aname])) {
$aname = $temp
->getName();
$aname = strtolower(str_replace('Google_Service_', '', $aname));
}
$scopes[$aname] = $temp
->getConstants();
$classes[$aname] = $class;
\Drupal::cache('gauth_scopes')
->set($aname, $scopes[$aname]);
}
}
\Drupal::configFactory()
->getEditable('gauth.google_api_services')
->set('gauth_google_api_services', $api_names)
->save();
\Drupal::configFactory()
->getEditable('gauth.google_api_classes')
->set('gauth_google_api_classes', $classes)
->save();
return $scopes;
}