public static function getClient()
 {
     $creds = GoogleSessionController::getCreds();
     $client = new Google_Client();
     $env = Config::getEnvironment();
     if ($env == 'local' && $creds->oauth_local_path) {
         $client->setAuthConfigFile($creds->oauth_local_path);
     } else {
         if ($creds->oauth_remote_path) {
             $client->setAuthConfigFile($creds->oauth_remote_path);
         } else {
             $client->setApplicationName($creds->app_name);
             $client->setClientId($creds->client_id);
             $client->setClientSecret($creds->client_secret);
         }
     }
     $client->setRedirectUri(GoogleSessionController::getRedirectURI());
     $hd = Config::get('config.google.hd');
     if ($hd) {
         $client->setHostedDomain($hd);
     }
     $client->setAccessType('offline');
     $client->addScope("https://www.googleapis.com/auth/userinfo.profile");
     $client->addScope("https://www.googleapis.com/auth/userinfo.email");
     $client->setScopes($creds->scopes);
     return $client;
 }
function getNewToken()
{
    $client = new Google_Client();
    $client->setApplicationName(APPLICATION_NAME);
    $client->setScopes(SCOPES);
    $client->setAuthConfigFile(CLIENT_SECRET_PATH);
    $client->setHostedDomain('email.wosc.edu');
    $client->setAccessType('offline');
    $client->setApprovalPrompt('force');
    $client->setRedirectUri($GMAIL->callback);
    $auth_url = $client->createAuthUrl();
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
}
Example #3
0
 /**
  * Default function to load all the google api settings from config file
  * @return type
  */
 public function index()
 {
     $client_id = $this->config->item('google_client_id');
     $client_secret = $this->config->item('google_client_secret');
     $redirect_uri = $this->config->item('google_redirect_uri');
     $api_key = $this->config->item('google_api_key');
     $hosted_domain = $this->config->item('google_allow_domain');
     // Create Client Request to access Google API
     $client = new Google_Client();
     $client->setApplicationName("PHP Google OAuth Login Example");
     $client->setClientId($client_id);
     $client->setClientSecret($client_secret);
     $client->setRedirectUri($redirect_uri);
     $client->setDeveloperKey($api_key);
     $client->setHostedDomain($hosted_domain);
     $client->addScope("https://www.googleapis.com/auth/userinfo.email");
     // 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();
         header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
     }
     // Set Access Token to make Request
     if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
         $client->setAccessToken($_SESSION['access_token']);
     }
     // Get User Data from Google and store them in $data
     if ($client->getAccessToken()) {
         $userData = $objOAuthService->userinfo->get();
         $data['userData'] = $userData;
         $_SESSION['access_token'] = $client->getAccessToken();
     } else {
         $authUrl = $client->createAuthUrl();
         $data['authUrl'] = $authUrl;
     }
     if (isset($authUrl)) {
         $this->load->view('login', $data);
     } else {
         $this->load->model('authentication');
         //add the google data in database if not exists
         $this->authentication->addGoogleCredentials($userData);
         $user_email = $this->session->userdata('user_email');
         $this->authentication->checkUserRole($user_email);
         $forward_to = $this->session->userdata('user_role');
         //redirect to page as per the role
         redirect($forward_to . '/landing');
     }
 }
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
//Google API PHP Library Files
require_once 'google-api-php-client-master/Google/autoload.php';
//Create Client Request to Access Google API
$client = new Google_Client();
$client->setApplicationName("Abre");
$client_id = constant("GOOGLE_CLIENT_ID");
$client->setClientId($client_id);
$client_secret = constant("GOOGLE_CLIENT_SECRET");
$client->setClientSecret($client_secret);
$redirect_uri = constant("GOOGLE_REDIRECT");
$client->setRedirectUri($redirect_uri);
$simple_api_key = constant("GOOGLE_API_KEY");
$client->setDeveloperKey($simple_api_key);
$client->setAccessType("offline");
$scopes = unserialize(constant("GOOGLE_SCOPES"));
$client->setScopes($scopes);
$hd = constant("GOOGLE_HD");
$client->setHostedDomain($hd);
//Send Client Requests
$Service_Oauth2 = new Google_Service_Oauth2($client);
$Service_Plus = new Google_Service_Plus($client);
$Service_Gmail = new Google_Service_Gmail($client);
$Service_Drive = new Google_Service_Drive($client);
$Service_Calendar = new Google_Service_Calendar($client);
$Service_Classroom = new Google_Service_Classroom($client);