2012-12-27 70 views
0

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

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本身并不熟悉。在进一步调查中,我很确定发生的事情是其他用户保持日历并与经理分享某些事件。所以我的问题归结为:有没有办法使用Google Calendars API列出共享事件?

回答

1

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

听起来像日历上的所有条目是资源日历。如果是这样的话,你应该有所有权的资源日历用户进行身份验证,但你应该检索条目资源日历,而不是用户的主日历:

events = service.events().list(calendarId='[email protected]').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='[email protected]', pageToken=page_token).execute() 
    else: 
    break 
+0

嘿,感谢上的抬头已弃用的版本。但是,我不认为我正在使用的是资源日历。这是经理的默认日历。她允许一些工作人员访问日历,他们可以与她的默认日历共享事件。那些是我想要访问的事件。 – user1427661

+0

如果它实际上在她的日历中,而不是与她共享的其他日历,那么它将与list()API调用一起显示。 –

+0

好吧,它出现在她的日历上,但她可以选择将条目复制到她的日历中,所以用户可能会简单地共享她日历上显示的某些条目(她的条目是稳定的;日历中的条目是半透明的在背景中的对角线)。有没有办法让API列出除复制到日历以外的条目?如果复制是唯一的方法,是否有简单的方法来自动复制过程? – user1427661

相关问题