我通过.NET客户端库使用Google日历API v3来构建已安装的应用程序。在我的开发人员控制台中,我定义了一个带有日历API的项目。我可以添加事件,但无法清除日历。以下代码适用于创建项目的帐户,但不适用于任何其他帐户(返回403禁止):
UserCredential credential;
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
ClientSecret = "yyyyyyyyyyyyyyyyyyy"
},
new[] { CalendarService.Scope.Calendar },
"johndoe@gmail.com",
CancellationToken.None,
new FileDataStore("Somefolder"));
// Create the service
cs = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Calendar App",
});
cs.Calendars.Clear("primary").Execute(); // 403 returned here
如何更正此问题,以便能够清除用户的主日历?我看到其他帖子谈到让用户共享他们的日历,但这并不实际,他们已经给了我的应用程序日历API权限。
问题不在于上面的代码或我的项目设置。这是我测试的一个帐户特有的问题。即使试图通过web界面"删除日历中的所有事件",也会导致该特定帐户出现同样的错误。在其他几个帐户上测试了它,它们运行良好。从周围的搜索来看,这似乎是人们可能遇到的一个不常见的问题。我错误地将其归因于代码,但这是该帐户特有的一些问题。