2017-06-12 23 views
0

Googleドライブに保存されている、またはGoogleアカウントと共有されているすべてのスプレッドシートファイルを一覧表示するアプリケーションを作成しようとしています。Googleドライブに保存された/共有されているすべてのスプレッドシートを一覧表示するにはどうすればよいですか?

私はC#API V3を使用しています。私のアプローチは部分的に動作します。問題は、すべてのファイルが表示されておらず、いくつかのファイルが42個しか表示されないということです。しかし、Webブラウザでドライブを見ると、私が作成した数百のスプレッドシートが表示されますまたは私と共有する)。ここで

は私がサービスを初期化する方法は次のとおりです。

string[] scopes = { DriveService.Scope.DriveAppdata, SheetsService.Scope.Spreadsheets }; 
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync 
(
    new ClientSecrets 
    { 
     ClientId = "12345", 
     ClientSecret = "54321" 
    }, 
    scopes, 
    "USER_NAME", 
    CancellationToken.None 
).Result; 

var baseClientServiceInitializer = new BaseClientService.Initializer() 
{ 
    HttpClientInitializer = credential, 
    ApplicationName = LIB_NAME + " v" + LIB_VERSION, 
}; 

this.driveService = new DriveService(baseClientServiceInitializer); 

ここではリストの要求です:これは実行後

List<File> allFilesOnDrive = new List<File>(); 

var listRequest = this.driveService.Files.List(); 
listRequest.PageSize = 25; 
listRequest.Fields = "nextPageToken, files(name, id)"; 
do 
{ 
    FileList fileBulk = listRequest.Execute(); 

    allFilesOnDrive.AddRange(fileBulk.Files); 
    listRequest.PageToken = fileBulk.NextPageToken; 
} while (listRequest.PageToken != null); 

allFilesOnDriveリストは、それだけ42ファイルがあります。私はこれらの42のファイルについて特別なことは何も見ることができません。彼らの残りの部分と同じことは、私が理解できる限りです。 私は何が欠けていますか?

答えて

0

あなたのコードに何が間違っているのかよく分からない場合は、ドライブアカウントに42個以上のファイルがありますか?あなたはコードが

検索はあなたの要求にQパラメータを追加することによって行われ、私のList all files on Google driveチュートリアルからリッピング

var pageStreamer = new Google.Apis.Requests.PageStreamer<Google.Apis.Drive.v3.Data.File, FilesResource.ListRequest, Google.Apis.Drive.v3.Data.FileList, string>(
               (req, token) => request.PageToken = token, 
               response => response.NextPageToken, 
               response => response.Files); 

var allFiles = new Google.Apis.Drive.v3.Data.FileList(); 
allFiles.Files = new List<Google.Apis.Drive.v3.Data.File>(); 

foreach (var result in pageStreamer.Fetch(request)) 
     { 
     allFiles.Files.Add(result); 
     } 

ページストリーマを使用してみてください注意してください。

MIMEタイプ= 'アプリケーション/ vnd.google-apps.spreadsheet'