我可以通过此处给出的代码使用 OAuth 身份验证从谷歌日历 API 检索事件,但如何使用 API 密钥编码获取事件信息。
API 密钥用于公共数据。 对于与日历一起使用的 API 密钥,我认为所述日历必须设置为公开。
var service = new CalendarService(new BaseClientService.Initializer()
{
ApiKey = "XXX",
ApplicationName = "xyz",
});
var events = service.Events.List("en.danish#holiday@group.v.calendar.google.com").Execute();
foreach (var myEvent in events.Items)
{
Console.WriteLine(string.Format("Event: {0} Start: {1} End: {2}", myEvent.Summary, myEvent.Start.DateTime.ToString(), myEvent.End.DateTime.ToString()));
}
我有一个在这里访问公共日历上事件的示例/教程
我认为您应该考虑查看服务帐户,这将允许您授予服务帐户访问日历的权限,并且您无需通过Oauth2身份验证,我怀疑这是您不想做的事情。
string[] scopes = new string[] {
CalendarService.Scope.Calendar, // Manage your calendars
CalendarService.Scope.CalendarReadonly // View your Calendars
};
var certificate = new X509Certificate2(keyFilePath, "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail) {
Scopes = scopes
}.FromCertificate(certificate));
我有一个关于如何在这里使用服务帐户的教程