使用API​​密钥获取Google云端硬盘中的文件意外列表

时间:2018-09-12 15:04:59

标签: google-docs-api api-key

我正在使用Google云端硬盘的dotNET客户端库从我的Google云端硬盘帐户中获取文件列表。

  1. 我登录到我的Google帐户
  2. 我导航到Google控制台凭据-https://console.cloud.google.com/apis/credentials
  3. 我选择我的项目“ Google Drive Test Access”
  4. 我创建了一个服务帐户凭据

然后,我拿出服务凭据密钥,并尝试列出我的Google云端硬盘帐户(包含两个测试文件)的内容。但是,当我运行该应用程序时,会得到一长串我从未见过的文件,我想知道它们来自何处。我只希望看到放在我的Google云端硬盘帐户中的两个测试文件。

enter image description here

这是我正在使用的示例应用程序。正是来自Google的dotNET客户端库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Google.Apis.Discovery.v1;
using Google.Apis.Discovery.v1.Data;
using Google.Apis.Services;

namespace List_Google_Drive_Files
{
  class Program
  {
    [STAThread]
    static void Main(string[] args)
    {
      Console.WriteLine("Discovery API Sample");
      Console.WriteLine("====================");
      try
      {
        new Program().Run().Wait();
      }
      catch (AggregateException ex)
      {
        foreach (var e in ex.InnerExceptions)
        {
          Console.WriteLine("ERROR: " + e.Message);
        }
      }
      Console.WriteLine("Press any key to continue...");
      Console.ReadKey();
    }

    private async Task Run()
    {
      // Create the service.
      var service = new DiscoveryService(new BaseClientService.Initializer
      {
        ApplicationName = "Discovery Sample",
        ApiKey = "<MY SERVICE ACCOUNT KEY GOES HERE>",
      });

      // Run the request.
      Console.WriteLine("Executing a list request...");
      var result = await service.Apis.List().ExecuteAsync();

      // Display the results.
      if (result.Items != null)
      {
        foreach (DirectoryList.ItemsData api in result.Items)
        {
          Console.WriteLine(api.Id + " - " + api.Title);
        }
      }
    }
  }
}

注意-我真的想使用服务帐户密钥,因为我希望构建一个服务到服务的应用程序,在该应用程序中,无需用户输入即可输入用户名和密码。我希望客户创建并给我一个访问密钥,然后我将使用该访问密钥来访问他们的文件。

0 个答案:

没有答案