【问题标题】:Outlook Calendar API - PythonOutlook 日历 API - Python
【发布时间】:2017-12-05 12:39:31
【问题描述】:

我正在尝试使用 API 从 Outlook 日历中检索事件。我只想检索今天之后的事件。我正在使用以下代码(基本上是微软教程的剪切和粘贴):

def make_api_call(method, url, token, user_email, payload = None, parameters = None):
  # Send these headers with all API calls
  headers = { 'User-Agent' : 'python_tutorial/1.0',
              'Authorization' : 'Bearer {0}'.format(token),
              'Accept' : 'application/json',
              'X-AnchorMailbox' : user_email }

  # Use these headers to instrument calls. Makes it easier
  # to correlate requests and responses in case of problems
  # and is a recommended best practice.
  request_id = str(uuid.uuid4())
  instrumentation = { 'client-request-id' : request_id,
                      'return-client-request-id' : 'true' }

  headers.update(instrumentation)

  response = None

  if (method.upper() == 'GET'):
      response = requests.get(url, headers = headers, params = parameters)
      print response.url
  elif (method.upper() == 'DELETE'):
      response = requests.delete(url, headers = headers, params = parameters)
  elif (method.upper() == 'PATCH'):
      headers.update({ 'Content-Type' : 'application/json' })
      response = requests.patch(url, headers = headers, data = json.dumps(payload), params = parameters)
  elif (method.upper() == 'POST'):
      headers.update({ 'Content-Type' : 'application/json' })
      response = requests.post(url, headers = headers, data = json.dumps(payload), params = parameters)

  return response

此函数从以下位置调用:

  get_events_url = outlook_api_endpoint.format('/Me/Events')

  query_parameters = {'$select': 'Subject,Start,End',
                      '$orderby': 'Start/DateTime ASC',
                      'startDateTime' : datetime.datetime.now().isoformat(),}

  r = make_api_call('GET', get_events_url, access_token, user_email, parameters = query_parameters)

它只返回日历中的前 10 个条目,而不是从今天开始的条目。如何取回特定日期的条目?

【问题讨论】:

    标签: python outlook calendar


    【解决方案1】:

    我找到了适合我的解决方案。首先,我将事件更改为日历视图,我将 StartDateTime 大写并添加了 EndDateTime,所以它看起来像这样:

    get_events_url = outlook_api_endpoint.format('/Me/calendarview')

      query_parameters = {'$select': 'Subject,Start,End',
                          '$orderby': 'Start/DateTime ASC',
                          'StartDateTime' : datetime.datetime.now().isoformat(),
                          'EndDateTime' : datetime.datetime(2100,12,31),}
    
      r = make_api_call('GET', get_events_url, access_token, user_email, parameters = query_parameters)
    

    它有效,所以我很高兴

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      相关资源
      最近更新 更多