About my app
On click of submit button the users are redirected to a THANKYOU page. At the background
pdf file gets generated
and this file will be uploaded to Gdrive account --(configured the client id & secret key for the app in Google Console) :
I am able to upload to the configured GDrive but first time to authenticate I run the url(redirect url given in Google Console) in browser say
http://localhost:3422/wordpress/wp-content/plugins/mktProc/google-api-php-client/gDrive_access/pdf_results_upload.phpThis takes me to GDrve Request For Permission page and prompts Allow\Deny Access and works perfectly in local development environment
My Problem
But for moving the code to Staging server, in Google Developer Console I change the origin & return uri to Staging uri like the below.
http://hyperAd.com/wp-content/plugins/mktProc/google-api-php-client/gDrive_access/pdf_results_upload.phpAfter this when I execute the app, it does not go to the Google Request for Permission page to prompt Allow\Deny. So no access token is received to proceed insert file to GDrive.
What is that I am missing here or what mistake have I done here?
-----
My current code
What I have tried
I have tried changing http to https
I have tried changing http to https
it doesn't allow
Is the return url at staging correct?
The return url in my dev Environment is correct and its working perfectly
-----
My current code
if(!session_id()){session_start();} require_once realpath(dirname(__FILE__) . '/../autoload.php');
$credentialsPath = realpath(dirname(__FILE__) . '/../../../../../');
$pdf_filename=''; try { if(isset($_SESSION['pdf_filename']) && $_SESSION['pdf_filename'])
$pdf_filename=$_SESSION['pdf_filename']; }
catch(Exception $ex)
{ echo ("This is for GDrive Upload from MiniROI"); } $pfdStoragePath=dirname(__FILE__)."/../../vendor/pdf/".$pdf_filename;
/************************************************ ATTENTION: Fill in these values! Make sure the redirect URI is to this page, e.g: http://localhost:8080/fileupload.php ************************************************/
$client_id = '374094698471-5.apps.googleusercontent.com';
$client_secret = 'd374094698471y';
$redirect_uri = 'http://localhost:3422/wordpress/wp-content/plugins/miniROIMarketo/google-api-php-client/gDrive_access/roi_results_upload.php';
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://www.googleapis.com/auth/drive");
$client->setAccessType("offline"); //$client->setApprovalPrompt('force');
$service = new Google_Service_Drive($client);
if (isset($_REQUEST['logout'])) {
unset($_SESSION['upload_token']); }
$accessToken=""; //log $plugin_dir ='../../vendor/pdf/log.txt';
$accessFilePath=$credentialsPath.'\miniROIAccessToken.json';
if (file_exists($accessFilePath)) {
$accessToken = json_decode(file_get_contents($accessFilePath), true); }
elseif (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$accessToken = $client->getAccessToken();
file_put_contents($credentialsPath.'\miniROIAccessToken.json', json_encode($accessToken));
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); }
if ($accessToken) { $client->setAccessToken($accessToken);
if ($client->isAccessTokenExpired()) { unset($accessToken); } }
else { $authUrl = $client->createAuthUrl(); }
/************************************************ If we're signed in then lets try to upload our file. ************************************************/
try { if ($client->getAccessToken()) {
if($pdf_filename!=="") {
$file = new Google_Service_Drive_DriveFile();
$file->setTitle($pdf_filename);
$file->setDescription('Document');
$file->setMimeType('application/pdf');
$result = $service->files->insert( $file, array( 'data' => file_get_contents($pfdStoragePath), 'mimeType' => 'application/pdf', 'uploadType' => 'multipart' ) );
$pdf_filename=""; unset($_SESSION['pdf_filename']); } } }
catch (Exception $ex) { echo "Unexpected issue encountered. Please Try again later."; }
?>
J AntoniPosted Oct 19, 2016, 5:05 AM
I found the cause of the issue There was a file access permission in the Staging server.
Giving the required permission in the staging server to the folder location where the token file (received from Google Request permission page) resides solved my issue.