使用Google.Apis和c#在我的Google网站上列出HTML文件

时间:2017-03-09 14:07:15

标签: c# google-api google-api-dotnet-client

我想使用Google.Apis列出我的Google网站上的所有网页。使用Google.Apis.Drive.v3方法,我可以列出我的云端硬盘帐户的内容,但我只为我的网站添加了一个条目 - 标题为MimeType为“application / vnd.google-apps” 。现场”。我正在使用服务帐户进行连接,这似乎正在起作用。是否有其他方式与Google网站上的文件进行互动?这是我的代码:

string[] scopes = { DriveService.Scope.Drive, DriveService.Scope.DriveFile, DriveService.Scope.DriveAppdata, DriveService.Scope.DriveMetadata, DriveService.Scope.DriveScripts };

        //open the service account private key file
        using (var stream = new FileStream("appName-bc2d6ad1c3bb.json", FileMode.Open, FileAccess.Read))
        {
            //create a new service credential
            var credential = GoogleCredential.FromStream(stream);
            credential = credential.CreateScoped(scopes);

            //create a new Drive service
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "appName",
            });

            var files = service.Files.List().Execute().Files;
            foreach(var tmpFile in files)
            {
                //Only lists the site name, not the individual HTML files
                Console.WriteLine(tmpFile.Name + " : " + tmpFile.Id + " : " + tmpFile.MimeType);
            }

        }

1 个答案:

答案 0 :(得分:0)

首先,您需要记住服务帐户不是您。除非您授予其访问权限,否则服务帐户无法访问数据。尝试访问您的网站并使用服务帐户电子邮件地址共享该网站。

其次,您确定这些文件位于Google云端硬盘上吗?