如何使用pythono365库获取outlook日历可用时间,以便使用aws lex aws lambda函数安排约会?

2024-05-23 22:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我是AWS和AZure的初学者。我正在做一个lex bot,它将根据代理的outlook日历进行约会。我将获取outlook日历的详细信息(约会的可用时间),并使用python库O365在outlook日历上进行约会。我有客户端ID和密钥,还有一个api来获取O365日历(从管理员那里得到的)。我没有关于O365功能或方法的适当文档。你知道吗

from O365 import Account
credentials = ('my_client_id', 'my_client_secret')
account = Account(credentials)
if account.authenticate(scopes=['basic', 'message_all']):
   print('Authenticated!')

当我运行这段代码时,告诉我访问一些URL并粘贴API端点。你知道吗

问题: 1) 我需要知道在O365中调用此api和日历相关函数的请求类型和格式(或使用此O365的适当文档) 2) 这个O365库可以导入aws Lambda吗?会预装吗?你知道吗

更新: 我得到了租户id,在使用了自己的用户标识方法之后,现在我可以进行身份验证了。但在那之后当我这么做的时候

from O365 import Account
import datetime as dt
credentials = ('xxxxx-0d57-49e5-xxxx-xxxxxxxx', 'xxxxx^[xxxxxxx[%')


account = Account(credentials, auth_flow_type='credentials', tenant_id='xxxxxx-e1ec-xxxxxxx-b1d9-xxxxxxxxx')
if account.authenticate():
   print('Authenticated!')

schedule = account.schedule()

schedule.get_availability(['test@angkorwat.onmicrosoft.com'],dt.datetime(2019, 9, 5, 19, 45),dt.datetime(2019, 9, 10))

我遇到以下错误:找不到段“calendar”的资源

> C:\Users\MyPc\Desktop>python user_himself.py 
> Authenticated! Client
> Error: 400 Client Error: Bad Request for url:
> https://graph.microsoft.com /v1.0/calendar/getSchedule | Error
> Message: Resource not found for the segment ' calendar'. Traceback
> (most recent call last):   File "user_himself.py", line 13, in
> <module>
>     schedule.get_availability(['test@angkorwat.onmicrosoft.com'],dt.datetime(
> 2019, 9, 5, 19, 45),dt.datetime(2019, 9, 10))   File
> "C:\Users\MyPc\AppData\Local\Programs\Python\Python37\lib\site-packages
> \O365\calendar.py", line 1931, in get_availability
>     response = self.con.post(url, data=data)   File "C:\Users\MyPc\AppData\Local\Programs\Python\Python37\lib\site-packages
> \O365\connection.py", line 725, in post
>     return self.oauth_request(url, 'post', data=data, **kwargs)   File "C:\Users\MyPc\AppData\Local\Programs\Python\Python37\lib\site-packages
> \O365\connection.py", line 703, in oauth_request
>     return self._internal_request(self.session, url, method, **kwargs)   File
> "C:\Users\Mypc\AppData\Local\Programs\Python\Python37\lib\site-packages
> \O365\connection.py", line 665, in _internal_request
>     raise HTTPError('{} | Error Message: {}'.format(e.args[0], error_message), r esponse=response) from None
> requests.exceptions.HTTPError: 400 Client Error: Bad Request for url:
> https://graph.microsoft.com/v1.0/calendar/getSchedule | Error
> Message: Resource not found for the segment 'calendar'.

Tags: inpyurldatetimelinedtaccounterror