jeAntoni Ответов: 0

Диске загрузки не происходит, когда переехал в промежуточной URL-адрес


Я использую google-drive-sdk для загрузки pdf-файла (динамически генерируемого в веб-приложении php) в Gdrive.

О моем приложении

При нажатии кнопки Отправить пользователи перенаправляются на страницу благодарности. На фоне

генерируется pdf-файл
и этот файл будет загружен в учетную запись Gdrive --(настроил идентификатор клиента и секретный ключ для приложения в консоли Google) :
Я могу загрузить файл в настроенный GDrive, но в первый раз для аутентификации я запускаю url-адрес (redirect url, указанный в консоли Google) в браузере.

http://localhost:3422/wordpress/wp-content/plugins/mktProc/google-api-php-client/gDrive_access/pdf_results_upload.php

Это приводит меня к странице запроса разрешения GDrve и подсказкам разрешить\запретить доступ и отлично работает в локальной среде разработки

моя проблема
Но для перемещения кода на промежуточный сервер в консоли разработчика Google я меняю исходный и возвращаю uri на промежуточный uri, как показано ниже.

http://hyperAd.com/wp-content/plugins/mktProc/google-api-php-client/gDrive_access/pdf_results_upload.php

После этого, когда я выполняю приложение, оно не переходит в Гугл на запрос о разрешении страница для запроса разрешить\запретить. Таким образом, маркер доступа не получен для продолжения вставки файла в GDrive.

Чего мне здесь не хватает или какую ошибку я совершил?


Мой текущий код

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.";
}



?>
<div class="box">
  <div class="request">
    
      <a class="login" href="%3C?php%20echo%20$authUrl;%20?%3E">Connect Me!</a>
       
    
  </div>

  
    <div class="shortened">
         
      webContentLink; ?>
     
        
    </div>
  
    
    
    
</div>


Что я уже пробовал:

Я пытался изменить http на https
это не позволяет

Это URL-адрес возврата в постановке правильного?
Обратный url-адрес в моей среде разработки правильный, и он отлично работает

0 Ответов