我在使用 Drive SDK 时遇到了一些问题。我正在尝试将我的 Google Drive 帐户中的所有文件导入我的应用程序。我觉得我正在做 Drive SDK 文档告诉我做的所有事情,但是每次我去抓取文件时,我都会返回一个空数组......并且没有错误。我使用 SDK 作为服务帐户,所以设置有点不同。顺便说一句,我的网站正在运行 drupal。这是我的代码:
1)首先,我构建服务(这是一个名为的函数的主体buildService()
:
$key = PATH_TO_KEY_FILE;
if (file_exists($key)) {
try {
$auth = new Google_AssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
array(DRIVE_SCOPE),
$key);
$client = new Google_Client();
$client->setUseObjects(true);
$client->setAssertionCredentials($auth);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
return new Google_DriveService($client);
}
else{
return "can't find key file';
}
这个块完全没问题,我从 Google_DriveService 得到一个对象
2)另一边,我抓住服务对象,并尝试列出驱动器文件:
$parameters = array();
$service = buildService(); //my function from step 1
$files = retrieveAllFiles($service, $parameters);
3)这是retrieveAllFiles
函数(直接来自SDK文档):
function retrieveAllFiles($service, $parameters) {
$result = array();
$pageToken = NULL;
do {
try {
if ($pageToken) {
$parameters['pageToken'] = $pageToken;
}
$files = $service->files->listFiles($parameters);
$result = array_merge($result, $files->getItems());
$pageToken = $files->getNextPageToken();
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
$pageToken = NULL;
}
} while ($pageToken);
return $result;
}
正如我所说,我得到了一个空结果,没有错误,什么都没有。
关于为什么我的结果为空的任何想法?
非常感谢任何帮助或建议。