gpt4 book ai didi

c# - Google API v3 - 无法获取日历列表

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:12 24 4
gpt4 key购买 nike

我正在尝试将事件添加到我的日历中。

我在 Google Developers Console 中创建了服务帐户凭据,我可以为自己授权。

我的帐户上有两个日历,但我无法使用 c# 代码将它们列出到 google API。

我的日历需要一些特殊权限吗?在设置 (calendar.google.com) 选项卡上,我拥有完全权限。也许获取日历列表的代码有问题?

 string[] scopesCal = new string[] { CalendarService.Scope.Calendar, // Manage your calendars
CalendarService.Scope.CalendarReadonly, // View your Calendars
};

var certificate = new X509Certificate2( @"GigaNetLibGoogleXCalendar.p12", "notasecret", X509KeyStorageFlags.Exportable );

ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer( ServiceAccountEmail ) {
Scopes = scopesCal
}.FromCertificate( certificate ) );

// Create the service.
CalSrv = new CalendarService( new BaseClientService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = "XCalendar",
} );

var calendars = CalSrv.CalendarList.List().Execute().Items;
foreach ( CalendarListEntry entry in calendars )
Console.WriteLine( entry.Summary + " - " + entry.Id );

最佳答案

默认情况下,您使用的是服务帐户,该服务帐户没有任何 Google 日历。你要么需要添加一个,要么让它访问你的一个。

获取服务帐户电子邮件地址并将其添加为您希望它能够访问的帐户日历上的用户。

转到 Google 日历网站。找到日历设置,然后转到日历选项卡,找到您要访问的日历,然后单击“共享:编辑设置”添加服务帐户电子邮件地址,就像您添加个人电子邮件地址一样。这将为服务帐户提供与您与任何其他用户共享它时相同的访问权限。

您可能希望授予它权限“对事件进行更改”

提示

您只需要 CalendarService.Scope.Calendar 即可获得完全访问权限。您可以删除 CalendarService.Scope.CalendarReadonly,实际上没有理由同时拥有两者。

关于c# - Google API v3 - 无法获取日历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33473974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com