Google Drive API v3:无效的字段选择

时间:2016-08-09 14:44:43

标签: php api google-drive-api drive

我正在使用Google Drive API v3来访问有关空间配额的驱动器。

而且,无论我做什么,我都会遇到这个错误:

Fatal error: Uncaught exception 'Google_Service_Exception' with message 'Error calling **GET https://www.googleapis.com/drive/v3/about?fields=name**: (400) Invalid field selection name' in /var/webs/includes/google-api-php-client/src/Google/Http/REST.php:110 

Stack trace:
#0 /var/webs/includes/google-api-php-client/src/Google/Http/REST.php(62): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 [internal function]: Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 /var/webs/includes/google-api-php-client/src/Google/Task/Runner.php(174): call_user_func_array(Array, Array)
#3 /var/webs/includes/google-api-php-client/src/Google/Http/REST.php(46): Google_Task_Runner->run()
#4 /var/webs/includes/google-api-php-client/src/Google/Client.php(593): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#5 /var/webs/includes/goog in /var/webs/includes/google-api-php-client/src/Google/Http/REST.php on line 110


$googleClient = $this->getClient();
$googleClient->setAccessToken($accessToken);
$googleDrive = new Google_Service_Drive($googleClient);
//fields can be found here: https://developers.google.com/drive/v3/web/migration#fields
$optParams = array(
    'fields' => 'name'
);
print_r($googleDrive->about->get($optParams));

请检查我是否已经为通话制作了完美的网址: 获取https://www.googleapis.com/drive/v3/about?fields=name 但是,仍然存在这个错误。有没有我缺少的参数?

请问,如果API本身存在问题,有人可以告诉我吗?

3 个答案:

答案 0 :(得分:8)

在v3中,字段定义已更改,应该是

fields=storageQuota,user/displayName

而不是

fields=name

无论如何,我没有PHP的经验。

价:
https://developers.google.com/drive/v2/reference/about https://developers.google.com/drive/v3/reference/about

您可以自己查看所有可用字段: 现在这些是我找到的字段:appInstalled, exportFormats, folderColorPalette, importFormats, kind, maxImportSizes, maxUploadSize, storageQuota & user

如果您需要查看允许的字段,请转到 https://developers.google.com/drive/v3/reference/about/get &做“试试吧!”。

答案 1 :(得分:1)

获取具有我已经使用过的所有files/*字段的文件

示例请求https://www.googleapis.com/drive/v3/files?fields=files/ *

答案 2 :(得分:0)

发生此错误是因为 name 不是顶级键。有效的顶级键是:kindincompleteSearchnextPageTokenfiles。要仅获取文件名,您必须使用 files/name 获取它。

要获取 nextPageToken 和文件名,您可以执行以下操作:fields=nextPageToken,files/name