2017-09-27 2 views
2

Ich kann mit der Office 365-Rest-API kein Kalenderereignis mit Anhängen erstellen. Das Erstellen von Ereignissen ohne Anhänge ist kein Problem. Der Versuch, Ereignisse mit Anhängen zu erstellen, erstellt das Ereignis, aber die Dateien, die ich sende, werden nicht hinzugefügt. Der Server antwortet mit einem Antwortcode 201.Office365-REST-API - Erstellen eines Kalenderereignisses mit Anhängen

Ich schicke eine POST-Anfrage an:

https://graph.microsoft.com/v1.0/me/calendars/$(calendarID)/events 

Ich verwende den folgenden Authorization-Header:

Authorization: Bearer $(tokenString) 

Anfrage Nutzlast:

{ 
    "start": { 
    "dateTime": "2017-09-27T20:00:00.000", 
    "timeZone": "UTC" 
    }, 
    "end": { 
    "dateTime": "2017-09-27T21:00:00.000", 
    "timeZone": "UTC" 
    }, 
    "attendees": [ 
    { 
     "emailAddress": { 
     "address": "[email protected]" 
     }, 
     "type": "Required" 
    } 
    ], 
    "subject": "Example subject", 
    "body": { 
    "content": "Example content", 
    "contentType": "Text" 
    }, 
    "hasAttachments": true, 
    "sensitivity": "Normal", 
    "attachments": [ 
    { 
     "@odata.type": "#microsoft.graph.fileAttachment", 
     "name": "$(fileName)", 
     "contentBytes": "$(base64EncodedString)" 
    } 
    ] 
} 

ich im Anschluss an die Dokumentation https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/calendar_post_events. Mein Ereignis folgt dem event schema, und die Anhänge folgen dem fileAttachment schema.

Ich habe verschiedene Werte für @ odata.type ausprobiert, hasAttachments aus der Anfrage entfernt, sowie name, size und contentType Felder zum Anhang hinzugefügt. Alle diese geben das gleiche Ergebnis - eine Antwort 201 und ein Ereignis, das ohne Anhänge erstellt wurde.

Jede Hilfe wäre sehr geschätzt, danke!

Antwort

3

Ich sehe das auch! Ich bin in der Lage, eine Anlage zu dem Ereignis nach der Erstellung zu veröffentlichen, nur eine mit der ursprünglichen Nutzlast erstellen.

Um dieses Problem zu umgehen, können Sie das Ereignis zu erstellen, dann tun

POST /me/events/{eventid}/attachments 

{ 
    "@odata.type": "#microsoft.graph.fileAttachment", 
    "name": "$(fileName)", 
    "contentBytes": "$(base64EncodedString)" 
} 

Ich werde dies mit den Kalender- Leuten überprüfen, um zu sehen, warum es nicht während der ersten POST arbeiten.

+0

Diese Problemumgehung funktioniert, danke! Im Idealfall möchte ich die zusätzlichen Anfragen vermeiden und alle Daten auf einmal POST, aber das funktioniert jetzt gut. –

Verwandte Themen