Tag: google spreadsheet api

更新Google Spreadsheets中的单元格会返回错误“缺少资源版本ID”/“远程服务器返回错误:(400)错误请求。”

我想更新Google Spreadsheets中的单元格值但不幸的是收到错误: Google.GData.Client.GDataRequestException was unhandled HResult=-2146233088 Message=Execution of request failed: https://spreadsheets.google.com/feeds/cells/1nW8nxoS2l9pbj6dctreEfKHNXmsfbbsCAvOd7TIj4Bo/od6/private/full/R1C1 Source=Google.GData.Client ResponseString=Missing resource version ID StackTrace: at Google.GData.Client.GDataRequest.Execute() … at System.Threading.ThreadHelper.ThreadStart() InnerException: System.Net.WebException HResult=-2146233079 Message=The remote server returned an error: (400) Bad Request. Source=System StackTrace: at System.Net.HttpWebRequest.GetResponse() at Google.GData.Client.GDataRequest.Execute() 我的代码非常简单,基于从https://developers.google.com/google-apps/spreadsheets/?csw=1#changing_contents_of_a_cell下载的示例: SpreadsheetsService service = new SpreadsheetsService(“MySpreadsheetIntegration-v1”); // TODO: Authorize the service object for a specific […]

批量更新时,Google电子表格API C#缺少资源版本ID

我正在尝试使用电子表格api C#v2.2.0.0批量更新空单元格: foreach (var csvline in csv) { var csvlineParsed = csvline.Split(‘;’); for (uint index = 0; index < csvlineParsed.Length; index++) { var cellEntry = new CellEntry(i, index + 1, csvlineParsed[index]); cellFeed.Insert(cellEntry); var cell = new CellEntry(i, index + 1); cell.Id = new AtomId(string.Format("{0}/{1}", cellFeed.Self, "R" + i + "C" + index + 1)); cell.InputValue […]

在Google电子表格中添加一行

我正在尝试向Google电子表格添加一行。 他们提供了一个来源https://developers.google.com/google-apps/spreadsheets/#adding_a_list_row这个来源对我来说不起作任何人都可以告诉我,请问有什么错误的行女巫包括名称“行”。 “错误11当前上下文中不存在名称’row’” using System; using System.Collections.Generic; using System.Linq; using System.Text; using Google.GData.Client; using Google.GData.Spreadsheets; namespace Google_test3 { class Program { static void Main(string[] args) { string USERNAME = “test”; string PASSWORD = “test”; SpreadsheetsService service = new SpreadsheetsService(“MySpreadsheetIntegration-v1”); service.setUserCredentials(USERNAME, PASSWORD); // Instantiate a SpreadsheetQuery object to retrieve spreadsheets. SpreadsheetQuery query = new SpreadsheetQuery(); // […]

使用OAuth 2和服务帐户访问旧的GData API(电子表格API)

简短的问题是这是否可能,如果可能,如何? 大纲 我有一个.NET应用程序,它目前使用服务帐户使用Google Drive API访问Google Apps域中的信息。 这可以正常使用google-api-dotnet-client库和代码沿着这里的示例所示的相同行 – 这是目前我正在做的非常好的基本示例。 我现在要做的是扩展它,以及使用 “新”google-api-dotnet-client库提供的那些API ,它使用旧的“GData”库,通过较旧的google-gdata库提供 ,特别是Spreadsheets API(也许还有更多)。 问题 这就是出现困难的地方。 前一个库正是我想要的,正如上面第一段中的第二个链接所certificate的那样 – 以及我自己做它的事实。 但是 ……虽然第二个库已经更新以支持OAuth 2.0以及其他旧的auth技术,但它没有 – 据我所知,从广泛的谷歌搜索和追踪错误 – 允许“代表我所有用户的服务帐户“我需要的操作。 我的问题是我是否遗漏了一些东西(可能很难找到或没有记录的东西),这些东西可以让我做我想做的事。 如果失败了,有什么方法可以强迫这种行为并使这两个库并排运行? 理想的解决方案 理想情况下,我会喜欢某种方式让Google.GData.Spreadsheets.SpreadsheetsService实例能够利用我已经在某种程度上使用的Google.Apis.Authentication.Auth2Authenticator实例。 这种巫术有可能吗? 我错过了那个显而易见的东西吗? 如果不这样做,我很高兴再次完成整个OAuth2“断言流客户端”的舞蹈,如果我不得不以旧版图书馆可以处理的方式。 救命? 其他想法 我考虑过 – 暂时拒绝 – 选择从头开始编写我自己的库来实现这一目标。 这有两个原因: gdata库已经存在,并且已经被许多人开发,可能比我自己聪明。 我不是那么傲慢,我相信我能做得更好。 我不确定这些旧API上是否支持/允许使用服务帐户方法的OAuth2。 我一直希望避免但可能不得不依赖于这里的答案的另一种方法是使用双腿OAuth 1.0来实现这一点。 我不愿意,因为应用程序的某些部分依赖于一种旧的auth方法,而其他部分则使用这种新方式对我来说感觉不对。 还有更多的问题…… 更新 我已经考虑过inheritanceGDataRequestFactory和GDataRequest的可能性,所以我可以创建自己的请求工厂,并使用Google.Apis.Authentication.Auth2Authenticator的实例(好吧,无论如何, Google.Apis.Authentication.IAuthenticator的实例)它可以在调用之前介入validation请求。 但是…… GDataRequest的构造函数是内部的,这已经阻止了我。 它真的看起来像是不应该的。