2017-09-27 95 views
2

我无法使用Office365的Rest API创建带附件的日历事件。创建没有附件的事件不是问题。试图用附件创建事件会创建事件,但我发送的文件不会被添加。服务器以201响应代码进行响应。Office365 REST API - 使用附件创建日历事件

我发送POST请求:

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

我用下面的Authorization头:

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

我已经尝试了@ odata.type的不同值,从请求中除去hasAttachments,以及向附件添加名称,大小和contentType字段。所有这些都给出了相同的结果 - 一个201响应,以及没有附件创建的事件。

任何帮助将不胜感激,谢谢!

回答

3

我也看到了!我可以在事件创建后发布附件,但不包括初始创建有效载荷的附件。

因此,作为一种变通方法,您可以创建活动,然后做

POST /me/events/{eventid}/attachments 

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

我会在这个压延乡亲检查,看看为什么它不是初始POST过程中工作。

+0

此替代方法适用,谢谢!理想情况下,我想避免额外的请求并一次性发布所有数据,但现在这种情况非常有效。 –

相关问题