1

내 서비스 계정과 공유되는 폴더의 모든 파일을 나열하려고합니다. 어떤 파일에 폴더 ID 또는 폴더 이름으로 '상위'속성이 설정되어 있는지 파악하려고합니다. 그러나 출력되는 모든 개체는 거의 모든 필드에 대해 "NULL"을 표시합니다. Google Drive API v3을 검색했으며 listFiles() 함수도 찾을 수 없습니다. 또한 파일 목록을 출력하는 데 Files.list 함수를 사용하는 것이 좋습니다. 그러나 Files.list 함수를 사용하면 메서드가없는 것처럼 오류가 발생합니다. 그래서 때 listFiles를 사용하여 다시 갔다 (...) 내 코드는 다음과 같습니다Google_Service_Drive 파일의 속성 만 null을 반환하는 이유는 무엇입니까?

public function getTitlesAndIDs($folderID) 
{ 

    // $capabilities = new \Google_Service_Drive_DriveFileCapabilities(); 
    // $capabilities->canListChildren = true; 
    $files = $this->driveService->files->listFiles(); 

    var_dump($files); 
} 

이 기능을 추가하려고 단지 NULL뿐만 아니라 반환합니다.

["files"]=> 
    array(100) { 
    [0]=> 
    object(Google_Service_Drive_DriveFile)#77 (65) { 
     ["collection_key":protected]=> 
     string(6) "spaces" 
     ["appProperties"]=> 
     NULL 
     ["capabilitiesType":protected]=> 
     string(42) "Google_Service_Drive_DriveFileCapabilities" 
     ["capabilitiesDataType":protected]=> 
     string(0) "" 
     ["contentHintsType":protected]=> 
     string(42) "Google_Service_Drive_DriveFileContentHints" 
     ["contentHintsDataType":protected]=> 
     string(0) "" 
     ["createdTime"]=> 
     NULL 
     ["description"]=> 
     NULL 
     ["explicitlyTrashed"]=> 
     NULL 
     ["fileExtension"]=> 
     NULL 
     ["folderColorRgb"]=> 
... 

왜 모두가 다시 같은 NULL 오는 값이며, 어떻게이 그래서 상위 폴더로 검색 할 수 있습니다 해결합니까 : 나는 때 listFiles()를 나는 다음과 같은 출력을 얻을 실행하면? Files.list 함수에 해당하는 PHP가 있습니까? 미리 감사드립니다.

+0

서비스 계정에 아직 파일이 없기 때문에 아마도 null입니다. 디렉토리를 공유하는 것만으로는 기본적으로 해당 디렉토리 내의 파일에 액세스 할 수 없습니다. 또한 파일 목록을 작성하는 데 필요한 모든 목록이 없으므로 추가 데이터 페이지에 페이지 매기기를 수행 할 수 있습니다. – DaImTo

+0

댓글을 주셔서 감사합니다. 디렉토리에 파일이 있습니다. 저는 또한 손으로 직접 가서 각 문서를 서비스 계좌로 공유했습니다. PHP는 "."을 사용하지 않습니다. 표기법. 그것은 files-> list ...를 사용합니다. 그러나 "list"라는 "files"매개 변수 아래에 API에는 기능이 없습니다. listFiles()는 필자가 필요로하는 것을하지 않는다. – Knight

답변

1

먼저 서비스 계정에 액세스 할 수있는 파일이 있는지 확인해야합니다. 일단 그렇게하면 파일을 나열 할 수 있어야합니다.

$service = new Google_Service_Drive($client); 

// Print the names and IDs for up to 10 files. 
$optParams = array(
    'pageSize' => 10, 
    'fields' => 'nextPageToken, files(id, name)' 
); 
$results = $service->files->listFiles($optParams); 

if (count($results->getFiles()) == 0) { 
    print "No files found.\n"; 
} else { 
    print "Files:\n"; 
    foreach ($results->getFiles() as $file) { 
    printf("%s (%s)\n", $file->getName(), $file->getId()); 
    } 
} 

코드는 명시 적으로 지적 PHP Quickstart @DalmTo 말한 외에도

+0

이 답변을 찾는데 도움이되었습니다. 이 질문을 찾을 수있는 다른 사람들을 위해 ... 분명히 PHP에서 Files.list 함수는 listFiles() 함수인데, 후자의 이름은 전자의 페이지에 나타나지 않습니다. – Knight

1

, 하나 개 중요한 것은에서 빼낸 : 당신은 필드의 목록을 제공하지 않았기 때문에 당신이 거의 모든 분야에 대한 NULL을받은 'fields' 선택적 매개 변수로.

+0

이것은 나를위한 유효한 답변입니다! 쿼리에서이 param을 잊어 버렸습니다. 예제 코드는 ID와 이름 만 요청합니다. 다른 필드 (예 : "trashed")를 입력하지 않으면 해당 값은 항상 null입니다. 감사! – spacorum

관련 문제