我在Drive SDK中遇到了一些問題。我試圖將我的Google雲端硬盤帳戶中的所有文件存入我的應用中。我感覺我正在做Drive Drive文檔告訴我要做的所有事情,但每次我抓取文件時,都會返回一個空數組,並且沒有錯誤。我將SDK用作服務帳戶,因此設置有點不同。順便說一句,我的網站正在運行drupal。這裏是我的代碼:Google Drive SDK:從驅動器返回的空文件陣列
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;
}
正如我所說,我得到一個空的結果返回,沒有錯誤,什麼都沒有。
任何想法爲什麼我的結果是空的?
任何幫助或建議,非常感謝。
您似乎在使用服務帳戶。因此,這意味着您正在訪問SERVICE_ACCOUNT_EMAIL中指定的服務帳戶的Google雲端硬盤。該服務帳戶的Google雲端硬盤很可能是空的,這就是爲什麼你會得到空的結果。你之前是否添加過任何文件?您確定要訪問服務帳戶的Google雲端硬盤,還是想要訪問特定用戶的Google雲端硬盤? – Nivco