1

所以,是的,这个错误只是让这个参数看起来不是 Google Drive Service 的一个实例。我一直在寻找有类似错误的人,但我一无所获。这是完整的错误,然后是我的代码:

可捕获的致命错误:传递给 Google_DriveService::__construct() 的参数 1 必须是 Google_Client 的实例,没有给出,在第 23 行的 php-google-oauth/data2.php 中调用并在 php-google-oauth/src/contrib 中定义/Google_DriveService.php 第 1041 行

Google_DriveService.php(第 1041 行附近):

class Google_DriveService extends Google_Service {
  public $about;
  public $apps;
  public $changes;
  public $children;
  public $comments;
  public $files;
  public $parents;
  public $permissions;
  public $replies;
  public $revisions;
  /**
    * Constructs the internal representation of the Drive service.
    *
    * @param Google_Client $client
  */
  public function __construct(Google_Client $client) { //LINE 1021
  $this->servicePath = 'drive/v2/';
  $this->version = 'v2';
  $this->serviceName = 'drive';
  // ....

数据2.php:

// ..... (defining GDRIVE_...s)
$client = new Google_Client();
$client->setClientId( GDRIVE_CLIENT_ID );
$client->setClientSecret( GDRIVE_CLIENT_SECRET );
$client->setRedirectUri( GDRIVE_REDIRECT_URIS );
$client->setScopes( array( GDRIVE_SCOPE_01, GDRIVE_SCOPE_02, GDRIVE_SCOPE_03, GDRIVE_SCOPE_04, GDRIVE_SCOPE_05 ) );
$service = new Google_DriveService(); // LINE 23
// ....

我在调用Google_Client()Drive 服务之前调用了类实例......所以我不确定发生了什么。

4

1 回答 1

1

传递给 Google_DriveService::__construct() 的参数 1 必须是 Google_Client 的实例,没有给出

这意味着您必须在实例化时(至少)传递一个参数,Google_DriveService并且您传递的参数必须是Google_Client该类的一个实例。

而不是这个:

$service = new Google_DriveService();

你需要:

$service = new Google_DriveService($client);
于 2015-04-26T21:20:22.077 回答