我正在使用Microsoft的示例Django应用程序并尝试从现在回到1年前阅读日历事件。 API请求使用Python请求函数完成:
response = requests.get(url, headers = headers, params = parameters)
标题是与标准API请求相关的:
headers = { 'User-Agent' : 'python_events/1.0',
'Authorization' : 'Bearer {0}'.format(token),
'Accept' : 'application/json',
'X-AnchorMailbox' : user_email }
并且,对于参数I' m:
query_parameters = {'$top': '2500',
'$select': 'Id,Subject,Start,End',
'$orderby': 'Start/DateTime ASC'}
现在,我尝试将开始日期和结束日期定义为:
now = datetime.utcnow()
one_year = now - timedelta(days=365)
now = now.isoformat()
one_year = one_year.isoformat()
然后,尝试在同一query_parameters dict中插入startDateTime和endDateTime参数:
query_parameters = {'$top': '2500',
'$select': 'Id,Subject,Start,End',
'$orderby': 'Start/DateTime ASC',
'startDateTime' : one_year,
'endDateTime': now
}
我仍然在一年前收到事件转储。我在这做错了什么? query_parameters是插入开始和结束日期和时间的正确位置吗?
答案 0 :(得分:0)
要使用startDateTime
和endDateTime
参数来限制日期范围,您需要在GET
端点上执行/calendarview
,而不是/events
}。 /events
端点不支持这些参数。
将您的url
更改为https://outlook.office.com/api/v2.0/Me/calendarview
,看看您是否获得了更好的结果。