Проблема с чтением общего календаря Outlook через Python - PullRequest
1 голос
/ 21 ноября 2019

Я пытаюсь создать приложение для чтения событий из общего календаря Outlook. Я использую Python 3.8.0 на win10. Вот моя функция, чтобы сделать это.

 def getSharedCalendarEntries(TS_name, days=1000): #TS_name is name of shared calendar
        MailboxToAccess = 'owner@gmail.com'
        Outlook = win32com.client.Dispatch("Outlook.Application")
        namespace = Outlook.GetNamespace("MAPI")
        recipient = namespace.createRecipient(MailboxToAccess)
        resolved = recipient.Resolve()
        sharedCalendar = namespace.GetSharedDefaultFolder(recipient, 9).Folders(TS_name).Items 
        sharedCalendar.Sort("[Start]")
        sharedCalendar.IncludeRecurrences = 'True'
        today = datetime.datetime(2019,1,1)
        begin = today.date().strftime('%d/%m/%Y')
        tomorrow = datetime.timedelta(days=days)+today
        end = tomorrow.date().strftime('%d/%m/%Y')
        sharedCalendar = sharedCalendar.Restrict("[Start] >= '" +begin+ "' AND [END] <= '" +end+ "'")
        events = {'Start':[],'End':[],'Subject':[],'Duration':[]}
        mEv = []
        for app in sharedCalendar: #petla po rezerwacjach
            adate = datetime.datetime(app.Start.year, app.Start.month, app.Start.day).date()
            events['Start'].append(adate)
            aend = datetime.datetime(app.End.year, app.End.month, app.End.day).date()
            events['End'].append(aend)
            events['Duration'].append(int(app.Duration/1440))
            events['Subject'].append(app.Subject)
            mEvent = Event(adate, aend, int(app.Duration/1440), app.Subject)
            mEv.append(mEvent)
        return mEv

Все работало, и я смог прочитать события, но вдруг что-то произошло (я ничего не изменил в коде), и у меня такая ошибка:

Файл«C: \ Users \ user_catalog \ Desktop \ outread.py», строка 60, в getSharedCalendarEntries sharedCalendar = namespace.GetSharedDefaultFolder (получатель, 9). Папки (TS_name). Элементы

Файл «C: \ Users \»user_catalog \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ win32com \ client \ dynamic.py ", строка 197, в вызов , возврат self._get_good_object_ (self. oleobj .Invoke (* allArgs), self. olerepr .defaultDispatchName, None) pywintypes.com_error: (-2147352567, «Возникло исключение.», (4096, «Microsoft Outlook», «Попытка выполнитьоперация не удалась. Не удалось найти объект. ', Нет, 0, -2147221233), Нет)

У меня был доступ только для чтения к общим календарям. Владелец общих календарей сказала, что она вышла из сети, и время выхода из системы было таким же, когда мое приложение перестало работать.

У кого-нибудь из вас была такая проблема или есть советы для меня? Заранее спасибо!

Пио

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...