在另一个帐户

时间:2017-01-06 07:50:02

标签: c# .net spreadsheet google-docs-api

我无法使用新的SpreadSheet API在GoogleDocs中创建电子表格,因为现在支持使用Google Drive API。

我发现的所有示例都是用于创建和修改表格,而不是主电子表格。

static string[] Scopes = { SheetsService.Scope.Spreadsheets };

var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets {
    ClientId = clientId, // FROM JSON
    ClientSecret = clientSecret // FROM JSON
},
 Scopes, Environment.UserName, CancellationToken.None,
 new FileDataStore("xxIDxx.GoogleDrive.Auth.Store")).Result;

var service = new SheetsService(new BaseClientService.Initializer() {
    HttpClientInitializer = credential,
    ApplicationName = "Google Sheets API Project",
});

string SpreadSheetID = "AVeryLongAndRandomStringID";
Spreadsheet SpSheet = new Spreadsheet();
SpSheet.Properties = new SpreadsheetProperties();
SpSheet.SpreadsheetId = SpreadSheetID;
SpSheet.Properties.Title = "I HATE THIS SPREADSHEET";

Sheet MySheet = new Sheet();
MySheet.Properties = new SheetProperties();
MySheet.Properties.Title = "MySheet";
MySheet.Properties.SheetId = 34213312;
MySheet.Properties.SheetType = "GRID";

var SheetSet = new List<Sheet>();
SheetSet.Add(MySheet);

SpSheet.Sheets = SheetSet;

var MyNewSpreadSheet = service.Spreadsheets.Create(SpSheet).Execute();

谢谢!

UPDATE:

小版本“var MyNewSpreadSheet”确实有效(我的最后一次尝试也确实如此)但是......我还没有意识到它是在 MY googleDrive中保存文档而不是我客户的帐户。

我想要完成的是创建一个应用程序,任何拥有Google帐户的人都可以在“存储库”帐户中创建或更改电子表格文档。

文件“client_secret.json”是从我客户的帐户生成的,我不知道为什么代码会在已记录的Gmail帐户上创建电子表格。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可能想尝试使用以下格式发送HTTP请求:

POST https://sheets.googleapis.com/v4/spreadsheets

Method: spreadsheets.create中所述,如果请求成功,则响应正文包含新创建的Spreadsheet实例。 另请注意,使用此方法需要使用以下OAuth范围:

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/spreadsheets

此外,请尝试检查此documentation是否有帮助。它是关于使用C#的Sheets API。