我尝试在我的代码中使用此功能: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 (86)\的EasyPHP-5.3.6.1 \ WWW \工作空间\ CPS \类\控制器\ CtrlGoogleDrive.php 在第115行
Thee数组似乎是空的可能但不应该是:
Array
(
[kind] => drive#fileList
[etag] => "WtRjAPZWbDA7_fkFjc5ojsEvE7I/lmSsH-kN3I4LpwShGKUKAM7cxbI"
[selfLink] => https://www.googleapis.com/drive/v2/files
[items] => Array
(
)
)
答案 0 :(得分:9)
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