Я не могу прочитать календарь обмена с exchangelib - PullRequest
0 голосов
/ 03 марта 2019

Извините, я не просто вижу, что я делаю неправильно (скорее всего, много).Все, что я пытаюсь сделать, это прочитать события из общего календаря.Я пытался следить за обсуждением использования общих папок, но это было немного запутанным для новичка.Использование python 2.7.x в OpenSuse 15.0

from exchangelib.folders import Calendar
from exchangelib import Credentials, Account, CalendarItem, UTC_NOW
import datetime
account = Account(...)
account.public_folders_root.refresh()
start = UTC_NOW() - datetime.timedelta(days=7)
print account.public_folders_root.tree()  #this works
x = account.public_folders_root
specificFolder = [item for item in x.walk().get_folders() if item.name == "OC Appointment Calendar"]
leg_folder = Calendar(folder_id = specificFolder[0].id, changekey = specificFolder[0].changekey)
for i in leg_folder.view(start=start, end=start + datetime.timedelta(days=14)):
    print i

testexchange.py", line 15, in <module>
  for i in leg_folder.view(start=start, end=start + datetime.timedelta(days=14)):
File "/usr/lib/python2.7/site-packages/exchangelib/folders.py", line 957, in view
  return FolderCollection(account=self.root.account, folders=[self]).view(*args, **kwargs)

AttributeError: 'NoneType' object has no attribute 'account

1 Ответ

0 голосов
/ 04 марта 2019

Оказывается, я не был далеко.Но вот изменения кода, которые разрешают доступ к встречам.

#specificFolder = [item for item in x.walk().get_folders() if item.name == "OC Appointment Calendar"]
# I was close in above but a better way to find the folder I was looking for is:
specificFolder = list(account.public_folders_root.glob('**/OC Appointment Calendar'))[0]
# Now I can use view()
for item in specificFolder.view(start=start, end=start + datetime.timedelta(days=14)):
    # item now has all the available data
    print item.mime_content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...