从多用户Google日历中获取所有条目

时间:2012-12-27 00:33:19

标签: python google-api google-calendar-api gdata

所以我有一个企业日历,它是组织中某个经理的默认Google日历。她在日历上有自己的条目,但也有许多条目似乎最初是在其他用户的日历上输入的,并与此默认日历共享或复制。我正在尝试使用Python Google Calendars API来获取日历上所有事件的列表。不幸的是,它只列出了经理添加的事件,即使经理可以看到所有其他事件。这是我在特定日期范围内检索条目的代码:

def dateRangeQuery(calendar_service, startDate, endDate):
    query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
    query.start_min = startDate
    query.start_max = endDate
    feed = calendar_service.CalendarQuery(query)
    for entry in feed.entry:
        print entry.title.text

有没有办法在没有登录信息的情况下检索其他用户的条目?

抱歉,我对谷歌日历本身并不熟悉。在进一步调查中,我很确定发生的事情是其他用户正在保持日历并与管理员分享某些事件。所以我的问题归结为:有没有办法使用Google Calendars API列出共享事件?

1 个答案:

答案 0 :(得分:1)

您应该使用新的Google Calendar API v3和Google API Python Client。没有必要针对旧的,已弃用的API版本进行开发。

听起来像日历上的所有条目都是资源日历。如果是这种情况,您应该作为拥有资源日历所有权的用户进行身份验证,但是您应该检索资源日历的条目,而不是用户的主日历:

events = service.events().list(calendarId='resource@email-address.com').execute()

while True:
  for event in events.get('items', []):
    print event['summary']
  page_token = events.get('nextPageToken')
  if page_token:
    events = service.events().list(calendarId='resource@email-address.com', pageToken=page_token).execute()
  else:
    break