2017-09-27 5 views
2

Impossible de créer un événement de calendrier avec des pièces jointes à l'aide de l'API de repos d'Office365. Créer des événements sans pièces jointes n'est pas un problème. Essayer de créer des événements avec des pièces jointes crée l'événement, mais les fichiers que j'envoie ne sont pas ajoutés. Le serveur répond avec un code de réponse 201.API REST Office365 - Création d'un événement de calendrier avec pièces jointes

J'envoie une requête POST à:

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

J'utilise l'en-tête d'autorisation suivant:

Authorization: Bearer $(tokenString) 

Demande charge utile:

{ 
    "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)" 
    } 
    ] 
} 

que je suis la documentation à https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/calendar_post_events. Mon événement suit le event schema et les pièces jointes suivent le fileAttachment schema.

J'ai essayé différentes valeurs pour @ odata.type, en supprimant hasAttachments de la requête, ainsi qu'en ajoutant des champs name, size et contentType à la pièce jointe. Tous ceux-ci donnent le même résultat - une réponse 201, et un événement créé sans pièces jointes.

Toute aide serait grandement appréciée, merci!

Répondre

3

Je vois cela aussi! Je suis en mesure de poster une pièce jointe à l'événement après sa création, ne pas en inclure un avec la charge utile de création initiale.

Alors comme solution de contournement, vous pouvez créer l'événement, puis faire

POST /me/events/{eventid}/attachments 

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

Je vais vérifier avec les gens de dessus pour calandrage voir pourquoi il ne fonctionne pas pendant le POST initial.

+0

Cette solution de contournement fonctionne, merci! Idéalement, je voudrais éviter les demandes supplémentaires et POSTER toutes les données à la fois, mais cela fonctionne bien pour le moment. –