我尝试使用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);
}
}
答案 0 :(得分:1)
因此,您创建的GSheet是使用服务帐户创建的。这意味着服务帐户是GSheet的所有者。
根据您的最终目标以及您使用的Google帐户类型,您可以在此处获得一些选项。
如果您使用G Suite account,则解决方案相对简单。它是使用服务帐户进行模拟的。然后,您基本上使用服务帐户来模拟用户执行操作。如果您在创建GSheet时模拟自己的帐户,则所有者将是您自己的帐户。该文档讨论了具体细节here.
如果您使用G Suite帐户不,但正常情况下'谷歌帐户,它变得有点棘手。我可以在这里考虑一些选择:
我可能在这里错过了一两个,但你应该明白现在发生了什么。
注意:您必须考虑的一件非常重要的事情。如果您删除了服务帐户,则会删除任何和所有Google云端硬盘商品(包括表格,文档,表单等),而无法将其取回。