ドライブSDKに問題があります。Googleドライブアカウントからアプリにすべてのファイルを取得しようとしています。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;
}
私が言ったように、私は空の結果が返され、エラーはなく、何も返されません。
私の結果が空である理由について何かアイデアはありますか?
ヘルプや提案は大歓迎です。