2017-01-11 2 views
1

Ich versuche, Ereignisse aus dem Outlook-Kalender mithilfe der API abzurufen. Ich möchte nur Ereignisse nach dem heutigen Tag abrufen. Ich verwende den folgenden Code (das ist im Grunde ein Ausschneiden und Einfügen von der Microsoft-Tutorial):Outlook-Kalender-API - Python

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 

Diese Funktion aus dem folgenden aufgerufen wird:

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) 

Es gibt einfach die ersten 10 Einträge in der Kalender statt Einträge von heute an. Wie bekomme ich Einträge für bestimmte Daten zurück?

Antwort

0

Ich habe eine Lösung gefunden, die für mich funktioniert. Zuerst habe ich Ereignisse geändert Calendar, ich habe Startdate aktiviert und hinzugefügt EndDateTime so dass es wie folgt aussieht:

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

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) 

Es funktioniert so Ich bin glücklich