public function googleDriveSuccess(Request $request) { $userId = GoogleDrive::where('userId', Auth::id())->first(); $client = new Google_Client(); $client->setApplicationName(APPLICATION_NAME); $client->setScopes(SCOPES); $client->setAuthConfigFile(CLIENT_SECRET_PATH); $client->setAccessType('offline'); $client->setClientId('61413088518-nvuqb0gr82a47stea9os5cctnu35ssp6.apps.googleusercontent.com'); $client->setClientSecret('eEY5p3_oq3L1w7rrVWB6Odw8'); if ($userId) { $access_token = $userId->access_token; $client->setAccessToken($access_token); /* To check whether access token is expired or not */ if ($client->isAccessTokenExpired()) { $refreshToken = $userId->refresh_token; //Here's where the magical refresh_token comes into play $client->refreshToken($refreshToken); /* Setting new Access Token */ $client->setAccessToken($client->getAccessToken()); /* Update the database with new Access Token and refresh token */ DB::table('googleDrive')->where('driveId', $userId->driveId)->update(['access_token' => $client->getAccessToken(), 'refresh_token' => $client->getRefreshToken()]); } $this->userAlreadyExists($client); } else { $client->authenticate($_GET['code']); $access_token = $client->getAccessToken(); $googleDriveObject = new GoogleDrive(); $googleDriveObject->userId = Auth::id(); $googleDriveObject->access_token = $access_token; $googleDriveObject->refresh_token = $client->getRefreshToken(); $googleDriveObject->save(); $client->setAccessToken($access_token); } $drive_service = new Google_Service_Drive($client); $result = array(); $pageToken = NULL; do { try { $parameters = array(); if ($pageToken) { $parameters['pageToken'] = $pageToken; } $children = $drive_service->children->listChildren("root", $parameters); $pageToken = $children->getNextPageToken(); } catch (Exception $e) { print "An error occurred: " . $e->getMessage(); $pageToken = NULL; } } while ($pageToken); $fileList = array(); foreach ($children->getItems() as $child) { $file = $drive_service->files->get($child->getId()); $driveObject = new GoogleDrive(); if (strpos($file->getMimeType(), '.folder') !== FALSE) { $driveObject->setFileType("Folder"); } else { $driveObject->setFileType("File"); } $driveObject->setTitle($file->getTitle()); $driveObject->setFileSize($file->getFileSize()); $driveObject->setDirectDownloadUrl($file->getWebContentLink()); $driveObject->setDownloadUrl($file->getDownloadUrl()); array_push($fileList, $driveObject); } return view('pages.googledrive')->with('googleDriveData', $fileList); }
public function getGoogleDriveClient() { $userId = GoogleDrive::where('userId', Auth::id())->first(); $client = new Google_Client(); $client->setApplicationName(APPLICATION_NAME); $client->setScopes(SCOPES); $client->setAuthConfigFile(CLIENT_SECRET_PATH); $client->setAccessType('offline'); $client->setClientId('61413088518-nvuqb0gr82a47stea9os5cctnu35ssp6.apps.googleusercontent.com'); $client->setClientSecret('eEY5p3_oq3L1w7rrVWB6Odw8'); if ($userId) { $access_token = $userId->access_token; $client->setAccessToken($access_token); /* To check whether access token is expired or not */ if ($client->isAccessTokenExpired()) { $refreshToken = $userId->refresh_token; //Here's where the magical refresh_token comes into play $client->refreshToken($refreshToken); /* Setting new Access Token */ $client->setAccessToken($client->getAccessToken()); /* Update the database with new Access Token and refresh token */ DB::table('googleDrive')->where('driveId', $userId->driveId)->update(['access_token' => $client->getAccessToken(), 'refresh_token' => $client->getRefreshToken()]); } //$this->userAlreadyExists($client); } else { $client->authenticate($_GET['code']); $access_token = $client->getAccessToken(); $googleDriveObject = new GoogleDrive(); $googleDriveObject->userId = Auth::id(); $googleDriveObject->access_token = $access_token; $googleDriveObject->refresh_token = $client->getRefreshToken(); $googleDriveObject->save(); $client->setAccessToken($access_token); } $drive_service = new Google_Service_Drive($client); return $drive_service; }