使用 .net 打开 google 个电子表格

Open google spreadsheet with .net

我正在开发一种通过 .net 访问 google 电子表格的工具。它使用旧的身份验证方式工作,直到 google 关闭它们。现在我重新开始使用 OAuth2 并生成了一个有效的访问令牌。

问题:即使使用访问令牌,我在尝试获取电子表格时也会收到错误请求 400。

这里是我如何设置服务和构建查询的代码:

var documentService = new DocumentsService("documents");
var requestFactory = new GDataRequestFactory(null);
requestFactory.CustomHeaders.Add("Authorization: Bearer " + accessToken);
documentService.RequestFactory = requestFactory;

var query = new SpreadsheetQuery { Title = name };
var feed = documentService.Query(uri);

我还尝试改用 SpreadsheetsService 并将访问令牌直接添加到查询中。然后查询的 Uri 如下所示:

https://docs.google.com/feeds/default/private/full?category=spreadsheet&title={speadsheetName}&access_token={access_token}

无论哪种方式,我都会收到 "Bad Request 400" 响应。 谁能帮我弄清楚这里出了什么问题?

谢谢!

编辑:由于访问电子表格的代码没有因 OAuth2 的更新而改变,并且访问令牌有效,我最好的猜测是服务 user/developer 项目缺少某些权限或类似的东西。但是不知道在哪里解决这个问题。

EDIT-2:我发现访问令牌适用于新的 api url 但不适用于旧的 api 调用。不幸的是,我不能在我的环境中使用新的 Google SDK,因为我只能使用 .NET 3.5 或更低版本。也许有一个选项可以让服务用户使用旧的 api 调用或类似的东西?

我找到了解决问题的方法:

DocumentsService 接缝(不再)起作用,至少对我而言。使用 SpreadsheetsService 代替并确保使用 SpreadsheetsService.SpreadsheetQuery 而不是 DocumentsService.SpreadsheetService 可以解决问题。第二个在我的情况下隐藏得很好。