如何获取特定用户的所有 public 日历?
How to get all public calendar of specific user?
我想知道如何检索特定用户的所有共享 Google 日历。我有一个 Service Account
,所以我不需要征求用户许可。
实际上我正在用 c# 编写一个小应用程序。当我需要为特定用户电子邮件添加事件时,我简单地执行:
Event myEvent = new Event
{
Summary = "Appointment"
Location = "Somewhere",
...
Attendees = new List<EventAttendee>()
{
new EventAttendee() { Email = "foo@gmail.com"}
}
};
所以你怎么能看到我在 Attendees
属性 中传递了用户的 email
。这允许我将约会放在特定用户的主日历中。
我想知道的是:如何为共享 Google Calendar
实现同样的效果?这样,应用程序向用户显示电子邮件,他的列表 public 日历,select 一个,我可以将事件放到指定的电子邮件和日历中。
我试过这样做:
var calendars = service.CalendarList.List().Execute().Items;
foreach (CalendarListEntry entry in calendars)
{
entry.Summary;
}
但是 calendars
return Count = 0
,因为我没有指定任何电子邮件,所以我想 API 试图访问我的 API 电子邮件,对吗?我如何告诉 API 用户的电子邮件以通过方法 CalendarList
获取日历列表?
您可以使用 Google 日历 API 查找和查看 public 日历事件。如果您获得授权,您还可以访问和修改私人日历和这些日历上的活动。
要了解如何操作并查看示例代码,您可以按照 Get Started with the Calendar API 中提供的首选快速入门指南的说明进行操作。
并且,要通过 CalendarList: list 获取日历列表,在您启用 OAuth 2.0 授权后,您可以发送带有示例格式的附加参数的 HTTP 请求:
GET https://www.googleapis.com/calendar/v3/users/me/calendarList
服务帐户不是您的虚拟帐户。您有两种选择,您可以授予服务帐户访问权限(仅共享)您在自己的 Google 日历帐户上创建的日历,然后它将能够 insert 进入该日历,或者您可以创建一个服务帐户 google 日历帐户上的新日历。
无论哪种方式,您都可以创建新活动并向其中添加人员。然后,当您想添加某人时,您可以使用 events.instert 并设置通知。用户将收到一封电子邮件,并能够将其添加到自己的个人 Google 日历中。
跳过另一个答案中推荐的calendar.list。 IMO 日历列表是无用的,它只是您可以在 Web 视图中访问的小日历列表,它位于左下角的列表中。如果您真的想使用它,则必须使用 calendar.list.insert 添加您在上面创建的日历,以将其添加到服务帐户日历列表中。但是就像我说的那样,我看不到服务帐户的日历列表的意义。
我想知道如何检索特定用户的所有共享 Google 日历。我有一个 Service Account
,所以我不需要征求用户许可。
实际上我正在用 c# 编写一个小应用程序。当我需要为特定用户电子邮件添加事件时,我简单地执行:
Event myEvent = new Event
{
Summary = "Appointment"
Location = "Somewhere",
...
Attendees = new List<EventAttendee>()
{
new EventAttendee() { Email = "foo@gmail.com"}
}
};
所以你怎么能看到我在 Attendees
属性 中传递了用户的 email
。这允许我将约会放在特定用户的主日历中。
我想知道的是:如何为共享 Google Calendar
实现同样的效果?这样,应用程序向用户显示电子邮件,他的列表 public 日历,select 一个,我可以将事件放到指定的电子邮件和日历中。
我试过这样做:
var calendars = service.CalendarList.List().Execute().Items;
foreach (CalendarListEntry entry in calendars)
{
entry.Summary;
}
但是 calendars
return Count = 0
,因为我没有指定任何电子邮件,所以我想 API 试图访问我的 API 电子邮件,对吗?我如何告诉 API 用户的电子邮件以通过方法 CalendarList
获取日历列表?
您可以使用 Google 日历 API 查找和查看 public 日历事件。如果您获得授权,您还可以访问和修改私人日历和这些日历上的活动。
要了解如何操作并查看示例代码,您可以按照 Get Started with the Calendar API 中提供的首选快速入门指南的说明进行操作。
并且,要通过 CalendarList: list 获取日历列表,在您启用 OAuth 2.0 授权后,您可以发送带有示例格式的附加参数的 HTTP 请求:
GET https://www.googleapis.com/calendar/v3/users/me/calendarList
服务帐户不是您的虚拟帐户。您有两种选择,您可以授予服务帐户访问权限(仅共享)您在自己的 Google 日历帐户上创建的日历,然后它将能够 insert 进入该日历,或者您可以创建一个服务帐户 google 日历帐户上的新日历。
无论哪种方式,您都可以创建新活动并向其中添加人员。然后,当您想添加某人时,您可以使用 events.instert 并设置通知。用户将收到一封电子邮件,并能够将其添加到自己的个人 Google 日历中。
跳过另一个答案中推荐的calendar.list。 IMO 日历列表是无用的,它只是您可以在 Web 视图中访问的小日历列表,它位于左下角的列表中。如果您真的想使用它,则必须使用 calendar.list.insert 添加您在上面创建的日历,以将其添加到服务帐户日历列表中。但是就像我说的那样,我看不到服务帐户的日历列表的意义。