访问Api在浏览器上创建了谷歌电子表格

时间:2018-05-28 02:33:09

标签: c# google-app-engine

我尝试使用google电子表格v4创建电子表格。我在控制台api上为服务器凭证json生成了一个新服务器。一切似乎都有效,但当我尝试访问生成的URL时,我得到一个屏幕说要求许可。该凭证是从我自己的服务帐户生成的,与我自己的Google帐户相关联,因此我了解到我已经拥有此权限。如何在浏览器上访问生成的工作表?在我的代码上方生成电子表格和我得到的屏幕。

公共课程     {         static string [] Scopes = {SheetsService.Scope.Spreadsheets,SheetsService.Scope.Drive,SheetsService.Scope.DriveFile};         static string ApplicationName =“Google表格API .NET快速入门”;

    public static void Main(string[] args)
    {
        AppendData();
    }

    public static void AppendData()
    {           
        // the downloaded jsonn file with private key

        var credential = GoogleCredential.FromStream(new FileStream(Environment.CurrentDirectory + "/ApiKey/api_key.json", FileMode.Open)).CreateScoped(Scopes);

        var service = new SheetsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,

        });

        Spreadsheet requestBody = new Spreadsheet()
        {
            Properties = new SpreadsheetProperties()
            {
                Title = "Calculo Projeção",

            },

        };

        SpreadsheetsResource.CreateRequest request = service.Spreadsheets.Create(requestBody);
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

因此,您创建的GSheet是使用服务帐户创建的。这意味着服务帐户是GSheet的所有者。

根据您的最终目标以及您使用的Google帐户类型,您可以在此处获得一些选项。

如果您使用G Suite account,则解决方案相对简单。它是使用服务帐户进行模拟的。然后,您基本上使用服务帐户来模拟用户执行操作。如果您在创建GSheet时模拟自己的帐户,则所有者将是您自己的帐户。该文档讨论了具体细节here.

如果您使用G Suite帐户,但正常情况下'谷歌帐户,它变得有点棘手。我可以在这里考虑一些选择:

  1. 快速而肮脏:首先使用您的个人帐户创建GSheet,并授予服务帐户访问权限。
  2. 让服务帐户创建GSheet并使用API​​ /库为您的个人帐户提供访问权限。
  3. 不使用服务帐户创建GSheet,而是使用OAuth和您自己的凭据。有几种方法可以解决这个问题。一个很好的起点是here...
  4. 我可能在这里错过了一两个,但你应该明白现在发生了什么。

    注意:您必须考虑的一件非常重要的事情。如果您删除了服务帐户,则会删除任何和所有Google云端硬盘商品(包括表格,文档,表单等),而无法将其取回。