Библиотека клиентов Google Диска PHP Получить список файловых ресурсов

Я пытаюсь использовать эту функцию в своем коде: https://developers.google.com/drive/v2/reference/files/list

Ниже:

/** * Retrieve a list of File resources. * * @param apiDriveService $service Drive API service instance. * @return Array List of File resources. */ function retrieveAllFiles($service) { $result = array(); $pageToken = NULL; do { try { $parameters = array(); if ($pageToken) { $parameters['pageToken'] = $pageToken; } $files = $service->files->listFiles($parameters); array_merge($result, $files->getItems()); // <---- Exception is throw there ! $pageToken = $files->getNextPageToken(); } catch (Exception $e) { print "An error occurred: " . $e->getMessage(); $pageToken = NULL; } } while ($pageToken); return $result; } 

Но я получил эту ошибку:

Неустранимая ошибка: вызов функции-члена getItems () для не-объекта в C: \ Program Files (x86) \ EasyPHP-5.3.6.1 \ www \ workspace \ CPS \ class \ controller \ CtrlGoogleDrive.php в строке 115

Тебе массив кажется пустым, но это не должно быть:

 Array ( [kind] => drive#fileList [etag] => "WtRjAPZWbDA7_fkFjc5ojsEvE7I/lmSsH-kN3I4LpwShGKUKAM7cxbI" [selfLink] => https://www.googleapis.com/drive/v2/files [items] => Array ( ) ) 

Клиентская библиотека PHP может работать двумя способами и возвращать объекты или ассоциативные массивы, причем последний является значением по умолчанию.

Примеры в документации предполагают, что вы хотите, чтобы библиотека возвращала объекты, иначе вам пришлось бы заменить следующие два вызова:

 $files->getItems() $files->getNextPageToken() 

с соответствующими вызовами, которые вместо этого используют ассоциативные массивы:

 $files['items'] $files['nextPageToken'] 

Еще лучше, вы можете настроить библиотеку, чтобы всегда возвращать объекты, установив

 $apiConfig['use_objects'] = true; 

Пожалуйста, проверьте файл config.php для получения дополнительных параметров конфигурации:

http://code.google.com/p/google-api-php-client/source/browse/trunk/src/config.php