2017-09-27 1 views
2

Office365의 Rest API를 사용하여 첨부 파일이있는 캘린더 이벤트를 만들 수 없습니다. 첨부 파일없이 이벤트를 만드는 것은 문제가되지 않습니다. 첨부 파일이있는 이벤트를 만들려고하면 이벤트가 만들어 지지만 보내는 파일은 추가되지 않습니다. 서버는 201 응답 코드로 응답합니다.Office365 REST API - 첨부 파일이있는 캘린더 이벤트 만들기

나는에 POST 요청을 보내고 :

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

나는 다음과 같은 인증 헤더 사용

Authorization: Bearer $(tokenString) 

요청 페이로드 :

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

난에서 문서를 다음 야를 https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/calendar_post_events. 내 이벤트는 event schema을 따르고 첨부 파일은 fileAttachment schema을 따릅니다.

요청에서 hasAttachments를 제거하고 name, size 및 contentType 필드를 첨부 파일에 추가하는 것과 마찬가지로 @ odata.type에 대해 다른 값을 시도했습니다. 이들 모두는 동일한 결과 - 201 응답 및 첨부 파일없이 작성된 이벤트를 제공합니다.

도움을 주시면 감사하겠습니다.

답변

3

나는 이것도 역시 본다! 생성 된 이벤트에 대한 첨부 파일을 게시 할 수 있습니다. 초기 생성 페이로드가 포함 된 파일은 포함하지 않아도됩니다.

그래서 해결 방법으로, 당신은 다음

POST /me/events/{eventid}/attachments 

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

내가 그것을 초기 POST 동안 작동하지 않는 이유를이에 일정의 사람으로 확인해 보겠습니다 수행 이벤트를 만들 수 있습니다.

+0

이 해결 방법은 작동합니다. 감사합니다. 이상적으로 나는 여분의 요청을 피하고 한번에 모든 데이터를 POST하고 싶습니다. 그러나 이것은 현재 잘 작동합니다. –