Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function exchangeCode($authorizationCode) {
- try {
- $client = new Google_Client();
- $client->setClientId(self::$clientId);
- $client->setClientSecret(self::$clientSacred);
- $client->setRedirectUri(self::getRedirectURI());
- $_GET['code'] = $authorizationCode;
- return $client->authenticate();
- } catch (Google_AuthException $e) {
- echo 'An Google_AuthException occurred: ' . $e->getMessage();
- throw new CodeExchangeException(null);
- }
- }
- function getCredentials($authorizationCode, $state='') {
- $emailAddress = '';
- try {
- $credentials = self::exchangeCode($authorizationCode);
- $credentialsArray = json_decode($credentials, true);
- if (isset($credentialsArray['refresh_token'])) {
- self::storeCredentials($credentials);
- return $credentials;
- } else {
- $credentials = self::getStoredCredentials();
- $credentialsArray = json_decode($credentials, true);
- if ($credentials != null &&
- isset($credentialsArray['refresh_token'])) {
- return $credentials;
- }
- }
- } catch (CodeExchangeException $e) {
- print 'An CodeExchangeException occurred during code exchange.';
- $e->setAuthorizationUrl(self::getAuthorizationUrl($emailAddress, $state));
- throw $e;
- } catch (NoUserIdException $e) {
- print 'No e-mail address could be retrieved.';
- }
- $authorizationUrl = self::getAuthorizationUrl($emailAddress, $state);
- throw new NoRefreshTokenException($authorizationUrl);
- }
- function buildService($credentials) {
- $apiClient = new Google_Client();
- $apiClient->setUseObjects(true);
- $apiClient->setAccessToken($credentials);
- return new Google_DriveService($apiClient);
- }
- function test()
- {
- $credentials = self::getStoredCredentials();
- if ( empty($credentials) )
- {
- if (!isset($_GET["code"]))
- {
- header("location:".self::getAuthorizationUrl("xxx@gmail.com", ''));
- die();
- }
- $credentials = self::getCredentials($_GET["code"]);
- echo "NEW: ".$credentials;
- }
- else
- {
- echo "STORED: ".$credentials;
- }
- $service = self::buildService($credentials);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement