无法使用Office 365 API创建新事件

时间:2014-10-16 08:13:31

标签: office365

我在Office 365 API中使用Calendar REST,并尝试根据以下示例发布事件:http://msdn.microsoft.com/en-us/library/office/dn792114(v=office.15).aspx

我得到的回应是

{error: {code: "ErrorInvalidRequest" message: "Cannot read the request body."} }

当我使用Avanced Rest Client发布到Content-Type: application/json的网址https://outlook.office365.com/ews/odata/Me/Events时,我正在使用office365服务帐户。

我发布的JSON是从上面链接中的示例复制的

{
  "@odata.type": "#Microsoft.Exchange.Services.OData.Model.Event",
  "Subject": "Discuss the Calendar REST API",
  "Body": {
    "ContentType": "HTML",
    "Content": "I think it will meet our requirements!"
  },
  "Start": "2014-07-02T18:00:00Z",
  "End": "2014-07-02T19:00:00Z",
  "Location": {
      "DisplayName": "Conference Room 1"
    },
  "ShowAs": "Busy",
  "Attendees": [
    {
      "Name": "Alex Darrow",
      "Address": "alexd@contoso.com",
      "Type": "Required"
    },
    {
      "Name": "Anne Wallace",
      "Address": "annew@contoso.com",
      "Type": "Optional"
    },
    {
      "Name": "Conference Room 1",
      "Address": "conf1@contoso.com",
      "Type": "Resource"
    }
  ]
}

如果"@odata.type": "#Microsoft.Exchange.Services.OData.Model.Event""Attendees"一起删除,则帖子成功。

如果有人能提供帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

感谢您的来信,对此给您带来的不便,我们深表歉意!以下是您的请求的修改版本,应该可以使用。我做了两处改动。参加者列表现在包括一个名为EmailAddress的类型。我还省略了@ odata.type,因为您不必包含它,因为您要发布到集合,所以我们的服务会推断出类型。邮件,日历和联系人的命名空间已从"#Microsoft.Exchange.Services.OData.Model"更新。到" #Microsoft.OutlookServices"这就是@ odata.type为你返回错误的原因。

{
  "Subject": "Discuss the Calendar REST API",
  "Body": {
    "ContentType": "HTML",
    "Content": "I think it will meet our requirements!"
  },
  "Start": "2014-07-02T18:00:00Z",
  "End": "2014-07-02T19:00:00Z",
  "Location": {
      "DisplayName": "Conference Room 1"
    },
  "ShowAs": "Busy",
  "Attendees": [
    {
      "EmailAddress": { "Name": "Alex Darrow", "Address": "alexd@contoso.com" },
      "Type": "Required"
    },
    {
      "EmailAddress": { "Name": "Anne Wallace", "Address": "annew@contoso.com"},
      "Type": "Optional"
    },
    {
      "EmailAddress": { "Name": "Conference Room 1", "Address": "conf1@contoso.com" },
      "Type": "Resource"
    }
  ]
}

这是一些额外的背景。我们目前正在对我们的邮件,日历和联系人API进行更改,以响应我们从预览用户收到的反馈。由于其中一些更改正在发生变化,而我们尚未添加版本控制,因此您会看到此问题。版本控制是向Office 365推出的更改的一部分,非向后兼容的更改不会成为版本控制的问题。我们正在努力尽快更新我们的文档和客户端库。与此同时,我们在这里发布了一个announcement,以便让开发人员了解情况。

如果您有任何疑问或需要更多信息,请与我们联系。

谢谢,

Venkat