Я пытаюсь узнать время доступности другого человека (отображается в outlook). Моя компания использует Office 365 для управления встречами. Итак, я записываю эти программы для получения данных, но это не работает. (Я пытался проверить, используя личный адрес электронной почты, а не адрес компании.)
credentials = (xxxx, yyyy)
account = Account(credentials)
if not account.is_authenticated:
account.authenticate(scopes=['basic', 'calendar_all'])
schedule = account.schedule()
schedules = ['xxxxx@hotmail.com', 'yyyyy@hotmail.com']
start = dt.datetime(2019, 10, 30, 19, 45, tzinfo=ja)
end = dt.datetime(2019, 10, 31, 19, 45, tzinfo=ja)
cal = schedule.get_availability(schedules, start, end, interval=30)
print(cal)
сообщение об ошибке
[{'scheduleId': 'xxxx@hotmail.com', 'error': {'message': 'Proxy web request failed. , inner exception: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.\r\n
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)\r\n
at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)\r\n
at Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)\r\n
at Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, IService service, IAsyncResult asyncResult)\r\n
at Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)\r\n
at Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling()', 'responseCode': 'ErrorProxyRequestProcessingFailed'}, 'availabilityView': []},
{'scheduleId': 'yyyy@hotmail.com', same message...}
Я знаю, что поток аутентификации учетных данных клиента может быть неправильным, но я не знаю, какойне так.
(работает другая программа, подобная следующей, поэтому я думаю, что не все сертификаты неверны)
credentials = (xxx, yyy)
account = Account(credentials)
schedule = account.schedule()
calendar = schedule.get_default_calendar()
new_event = calendar.new_event()
new_event.start = dt.datetime(2019, 11, 30, 19, 45)
new_event.save()
Любое руководство будет высоко ценится.