2012-12-27 69 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

相關問題