Так что да, из-за ошибки все выглядит так, будто аргумент не является экземпляром службы Google Drive. Я искал людей с похожими ошибками, но ничего не получил. Вот полная ошибка, а затем мой код:
Исправляемая фатальная ошибка: аргумент 1, передаваемый в Google_DriveService :: __ construct (), должен быть экземпляром Google_Client, ни один из которых не указан, вызывается в php-google-oauth / data2.php в строке 23 и определяется в 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';
// ....
data2.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 … Так что я не уверен, что происходит.
Аргумент 1, переданный в Google_DriveService :: __ construct () должен быть экземпляром Google_Client, ни один не задан
Это означает, что вы должны передать (как минимум) один аргумент при создании экземпляра Google_DriveService
и что аргумент, который вы передаете, должен быть экземпляром Google_Client
учебный класс.
Вместо этого:
$service = new Google_DriveService();
Тебе нужно:
$service = new Google_DriveService($client);
Других решений пока нет …