我正在通过.NET客户端库使用Google calendar API v3来构建已安装的应用。在我的开发者控制台中,我有一个使用Calendar 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
如何更正此问题,以便我能够清除用户的主日历?我见过other posts谈论让用户分享他们的日历,但这不实用,他们已经给了我的应用程序Calendar API权限。
答案 0 :(得分:1)
问题原来不是上面的代码或我的项目设置。这是我测试过的一个帐户特有的问题。即使尝试通过Web界面“删除日历中的所有事件”,也会导致此特定帐户出现同样的错误。在其他几个帐户上测试过,它们运行正常。从搜索周围看来,这是一个人们可能遇到的不太常见的问题。我错误地将其归因于代码,但这是该帐户特有的一些问题。