/** * Initializes the Google Drive connection * * @param array $params Any connection params needed * @return object **/ public static function init($params = []) { // Get the params $pparams = Plugin::params('filesystem', 'googledrive'); $app_id = isset($params['app_id']) && $params['app_id'] != '' ? $params['app_id'] : $pparams->get('app_id'); $app_secret = isset($params['app_secret']) && $params['app_secret'] != '' ? $params['app_secret'] : $pparams->get('app_secret'); $client = new \Google_Client(); $client->setClientId($app_id); $client->setClientSecret($app_secret); $client->addScope(Google_Service_Drive::DRIVE); $client->setAccessType('offline'); $client->setApprovalPrompt('force'); $client->setIncludeGrantedScopes(true); if (isset($params['app_token'])) { $accessToken = $params['app_token']; // json encode turned our array into an object, we need to undo that $accessToken = (array) $accessToken; } else { \Session::set('googledrive.app_id', $app_id); \Session::set('googledrive.app_secret', $app_secret); \Session::set('googledrive.connection_to_set_up', Request::getVar('connection', 0)); // Set upp a return and redirect to Google for auth $return = Request::getVar('return') ? Request::getVar('return') : Request::current(true); $return = base64_encode($return); $redirectUri = trim(Request::root(), '/') . '/developer/callback/googledriveAuthorize'; $client->setRedirectUri($redirectUri); Session::set('googledrive.state', $return); App::redirect($client->createAuthUrl()); } $client->setAccessToken($accessToken); $service = new \Google_Service_Drive($client); $adapter = new \Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter($service, 'root'); return $adapter; }
public static function getClient() { // $config = self::loadConfig(); $client = new Google_Client(); $client->setAuthConfigFile(dirname(__FILE__) . '/client_secret.json'); $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . FOLDER_APP); $client->addScope(Google_Service_Gmail::MAIL_GOOGLE_COM); $client->addScope(Google_Service_Gmail::GMAIL_COMPOSE); $client->addScope(Google_Service_Gmail::GMAIL_MODIFY); $client->addScope('http://www.google.com/m8/feeds/'); $client->addScope('https://www.googleapis.com/auth/userinfo.email'); $client->setIncludeGrantedScopes(true); $client->setAccessType('offline'); $client->setApprovalPrompt('force'); return $client; }
*/ error_reporting(E_ALL); require_once realpath(dirname(__FILE__) . '/autoload.php'); $client = new Google_Client(); $client->setApplicationName("LyfeKit"); // optional if ($request_from == 'web') { $client_id = $_SERVER['HTTP_HOST'] == 'localhost:13080' ? "577040276233-jve4tho9nlqkhtr0gkjt9usmnksssar2.apps.googleusercontent.com" : "577040276233-uaf3iiujllb7dq49g96a80jsn1690dhg.apps.googleusercontent.com"; $client_secret = $_SERVER['HTTP_HOST'] == 'localhost:13080' ? "DFiFCKwiG5owtXIqMK04CW4N" : "ajEb8i843yMnsWiXBNCyExpT"; $redirect_uri = $_SERVER['HTTP_HOST'] == 'localhost:13080' ? 'http://localhost:13080' : 'http://lyfekit.com'; $client->setAccessType('offline'); /** * Important: When your application receives a refresh token, it is important to store that refresh token for future use. If your application loses the refresh token, it will have to re-prompt the user for consent before obtaining another refresh token. If you need to re-prompt the user for consent, include the approval_prompt parameter in the authorization code request, and set the value to force. */ $client->setApprovalPrompt('auto'); $client->setIncludeGrantedScopes(TRUE); } elseif ($request_from == 'mobile') { $client_id = "577040276233-966074s939hj72put8bbbk9gac7gm4df.apps.googleusercontent.com"; $client_secret = "PVaezfl9npRfCOiuX4YA8iCb"; $redirect_uri = 'http://localhost'; $client->setAccessType('offline'); $client->setIncludeGrantedScopes(TRUE); } else { $this->print_error(array("status" => "error", "response" => "Invalid request from input")); } $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->addScope("https://www.googleapis.com/auth/plus.login"); $client->addScope("https://www.googleapis.com/auth/userinfo.email"); $client->addScope("https://www.googleapis.com/auth/userinfo.profile");
public function login($err = null) { $data = array(); $periodo_edicion = $this->evaluacion_model->getPeriodoEdicion(); if ($err != null) { $data['err_msg'] = $err; } $email = $this->input->post('email'); if (!empty($email)) { $password = $this->input->post('password'); $result = $this->user_model->do_login($email, $password); if ($result) { //var_dump($result->tipo);exit; // Zona de permisos $permisos = array('administrator' => $result->area == 4 && $result->tipo == 4 || $result->area == 26, 'create_requisicion' => in_array($result->tipo, array(4, 3)) || $result->nivel_posicion <= 5, 'requisicion_pendiente' => count($this->requisicion_model->getRequisicionesPendenting($result->id))); //$_SESSION['access_token'] = 1; $sess_array = array('id' => $result->id, 'nombre' => $result->nombre, 'email' => $result->email, 'foto' => $result->foto, 'empresa' => $result->empresa, 'posicion' => $result->nivel_posicion, 'area' => $result->area, 'direccion' => $result->direccion, 'tipo' => $result->tipo, 'periodo_edicion' => $periodo_edicion, 'permisos' => $permisos); $data['email'] = $result->email; $this->session->set_userdata($sess_array); $re = "main/index"; } else { $data['err_msg'] = "No es posible iniciar sesión, verifica las credenciales"; } } // Include two files from google-php-client library in controller include_once APPPATH . "libraries/google-api-php-client-master/src/Google/autoload.php"; include_once APPPATH . "libraries/google-api-php-client-master/src/Google/Client.php"; include_once APPPATH . "libraries/google-api-php-client-master/src/Google/Service/Oauth2.php"; // Store values in variables from project created in Google Developer Console $client_id = '904111204763-9c015hanptq9jehs8nj57at4joqfroe1.apps.googleusercontent.com'; $client_secret = '49DbvsMqY6-8dTCnlXJrIp-C'; $redirect_uri = base_url('auth'); $simple_api_key = 'AIzaSyBhG2aM8BVUvRNXRypylxu4XJBIYLWtdyQ'; // Create Client Request to access Google API $client = new Google_Client(); $client->setApplicationName("Auth"); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->setDeveloperKey($simple_api_key); $client->addScope("https://www.googleapis.com/auth/userinfo.email"); $client->setIncludeGrantedScopes(true); $client->setAccessType("offline"); // Send Client Request $objOAuthService = new Google_Service_OAuth2($client); // Add Access Token to Session if (isset($_GET['code'])) { $client->authenticate($_GET['code']); $_SESSION['access_token'] = $client->getAccessToken(); $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); } // Set Access Token to make Request if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { $client->setAccessToken($_SESSION['access_token']); } else { $authUrl = $client->createAuthUrl(); } // Get User Data from Google and store them in $data if ($client->getAccessToken()) { if ($client->isAccessTokenExpired()) { $authUrl = $client->createAuthUrl(); header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL)); } /*$NewAccessToken = json_decode($_SESSION['access_token']); $client->refreshToken($NewAccessToken->access_token);*/ $userData = $objOAuthService->userinfo->get(); $email = $userData->email; $result = $this->user_model->do_login($email); if ($result) { $_SESSION['access_token'] = $client->getAccessToken(); // Zona de permisos $permisos = array('administrator' => ($result->area == 4 || $result->area == 26) && $result->tipo == 4, 'create_requisicion' => in_array($result->tipo, array(4, 3)) || $result->nivel_posicion <= 5, 'requisicion_pendiente' => count($this->requisicion_model->getRequisicionesPendenting($result->id))); $sess_array = array('id' => $result->id, 'nombre' => $result->nombre, 'email' => $result->email, 'foto' => $result->foto, 'empresa' => $result->empresa, 'posicion' => $result->nivel_posicion, 'area' => $result->area, 'direccion' => $result->direccion, 'tipo' => $result->tipo, 'periodo_edicion' => $periodo_edicion, 'permisos' => $permisos); $data['email'] = $result->email; $this->session->set_userdata($sess_array); } else { echo "<script>alert('Credenciales Inválidas');</script>"; unset($_SESSION['access_token']); } $this->layout->title('Advanzer - Bienvenido'); $re = "main/index"; } else { $authUrl = $client->createAuthUrl(); $data['authUrl'] = $authUrl; $this->layout->title('Advanzer - Login'); $re = "main/login"; } $this->verify_session(); // Load view and send values stored in $data //$this->load->view('google_authentication', $data); $this->layout->view($re, $data); }
//$client->addScope('https://docs.google.com/feeds'); //$client->authenticate($_GET['code']); //$access_token = $client->getAccessToken(); //echo gettype($access_token) ; //die($access_token); //change to configurable $access_token = '{ "access_token": "ya29.dALnYEH949dMsMb-pkHAmqVGwAPnsGf-D9gV4VexWxK4u69CRl_pK5jSzQv8L3XnpzfH", "token_type": "Bearer", "expires_in": 3600, "created": 1453709814 }'; $client->setAccessToken($access_token); $accessToken = json_decode($access_token); if ($client->isAccessTokenExpired()) { $client->setIncludeGrantedScopes(true); $client->refreshToken($token->access_token); $access_token = $client->getAccessToken(); // save the new token to configurable $accessToken = json_decode($access_token); } $drive_service = new Google_Service_Drive($client); $files_list = $drive_service->files->listFiles(array())->getItems(); /*foreach($files_list as $file){ /** * @var Google_Service_Drive_DriveFile $file * *-/ echo $file->getId()."<br />\r\n"; echo $file->originalFilename."<br />\r\n";