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を返します。私はLISTFILESを実行する()ときに私はこのような出力が得られます。

["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として戻って来ていると私は私が親フォルダで検索することができますので、これをどのように修正するのですか? Files.list関数に相当するPHPはありますか? ありがとうございます。

+0

サービスアカウントにまだファイルがないため、おそらくnullです。ディレクトリを共有するだけでは、デフォルトでは、そのディレクトリ内のファイルにアクセスすることはできません。また、file.listを実行するために必要なすべてのリストはありません。そして、データの追加ページにページを作成します。 – 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

これは私にとって有効な答えです!クエリでこのパラメータを忘れてしまったので、サンプルコードではIDと名前のみを要求します。他のフィールドを入力しないと(私の場合は "trashed"のように)、その値は常にnullになります。ありがとう! – spacorum

関連する問題