Google云端硬盘API代码验证返回500错误

时间:2018-06-15 09:20:12

标签: php google-drive-api google-oauth

目前,我正在使用PHP中的We应用程序,它将获取Google Drive文件并对其执行一些操作。 我创建了名为My Project的Google Project,其中包含允许我下载凭据json文件的凭据。我使用了谷歌文档中提到的两个文件 https://developers.google.com/api-client-library/php/auth/web-app

index.php

<?php

 require 'vendor/autoload.php';
 session_start();
 $client = new Google_Client();
 $client->setAuthConfig('client_secret_new.json');
 //$client->setAccessType("online");        // offline access
 //$client->setIncludeGrantedScopes(true);   // incremental auth
 $client->addScope(Google_Service_Drive::DRIVE);
 $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/google-
 drive/oauth2callback.php');

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$drive = new Google_Service_Drive($client);
$optParams = array(
    'fields' => 'nextPageToken, files(id, name)'
);
$files = $drive->files->listFiles($optParams);
if (count($files->getFiles()) == 0) {
    print "No files found.\n";
} else {
    print "Files:\n";
    foreach ($files->getFiles() as $file) {
        echo $file->getName()." ".$file->getId()."<br/>";
    }
    }
    } else {
   $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/google-
    drive/oauth2callback.php';
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
  }

 ?>

oauth2callback.php

  <?php
    require_once 'vendor/autoload.php';
    session_start();

     $client = new Google_Client();
     $client->setAuthConfigFile('client_secret_new.json');
     $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/google-
     drive/oauth2callback.php');
     $client->addScope(Google_Service_Drive::DRIVE);

     if (!isset($_GET['code'])) {
     $auth_url = $client->createAuthUrl();
     header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
     } else {
     $client->authenticate($_GET['code']);
     $_SESSION['access_token'] = $client->getAccessToken();
      $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/google-drive/';
      header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
     }

    ?>

运行index.php文件后,我登录谷歌帐户并要求获得所需权限,一旦我获得权限,它就会移动到重定向网址,即oauth2callback.php文件,网址中包含代码,但oauth2callback.php一旦对代码进行身份验证,就会在行500 error

中提供$client->authenticate($_GET['code']);

请给我解决方案。

0 个答案:

没有答案