【发布时间】:2013-11-12 22:11:21
【问题描述】:
使用服务帐户 + 模拟检索 Google 日历条目时出现以下错误:
错误:“access_denied”,描述:“”,Uri:“”
我可以使用用户和服务帐户流创建事件(无模拟)。我可以使用用户和服务帐户流(有和没有模拟)检索日历。我可以仅使用用户流检索日历事件。
在相关问题上,我注意到使用 oAuth2 用户流返回的事件包括我不是与会者的事件,因此我不清楚模拟是否应将返回的事件过滤到仅我是与会者的事件。
这里是服务帐号+模拟代码:
string serviceAccountEmail = "...@developer.gserviceaccount.com";
var certificate = new X509Certificate2(Server.MapPath("~") + @"\bin\key.p12", "notasecret",
X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(new
ServiceAccountCredential.Initializer(serviceAccountEmail)
{ Scopes = new[] { CalendarService.Scope.Calendar }, User="my email here" }.FromCertificate
(certificate));
BaseClientService.Initializer initializer = new BaseClientService.Initializer();
initializer.HttpClientInitializer = credential;
initializer.ApplicationName = "Google Calendar Sample";
service = new CalendarService(initializer);
IList list = service.CalendarList.List().Execute().Items; // throws error
foreach (CalendarListEntry calendar in list)
DisplayFirstCalendarEvents(calendar);
直接获取日历也会抛出同样的错误:
Calendar cal1 = service.Calendars.Get("my personal calendar id").Execute(); //throws same error
【问题讨论】:
标签: c# .net google-calendar-api google-api-dotnet-client