Microsoft Graph上的响应400-创建日历事件:有效负载中的属性emailAddress的值与架构不匹配

时间:2019-05-17 17:17:01

标签: microsoft-graph microsoft-graph-calendar

我正在通过Microsoft Graph创建一个新的日历活动。我正在尝试在Graph日历事件上插入管理器信息

if organizer.get('email'):
    log('email: ')
    log(organizer.get('email', ''))


eventJson["organizer"] = {
    "emailAddress": {
        "address":str(organizer.get('email', ''))
    }
}

日志:

2019-05-17T17:05:45.421475+00:00 app[web.1]: ERROR
2019-05-17T17:05:45.421493+00:00 app[web.1]: <Response [400]>
2019-05-17T17:05:45.421501+00:00 app[web.1]: 
{
  "error": {
    "code": "BadRequest",
    "message": "Property emailAddress in payload has a value that does not match schema.",
    "innerError": {
      "request-id": "xxxxxxxxxxxx",
      "date": "2019-05-17T17:05:45"
    }
  }
}

我已经检查了organizer.get('email')的内容。此外,在其他一些情况下,相同的结构也可以正常工作。我不知道架构的期望。

这是我在文档中找到的示例

"organizer": {
    "emailAddress": {
        "name": "Megan Bowen",
        "address": "MeganB@contoso.OnMicrosoft.com"
    }
}

2 个答案:

答案 0 :(得分:2)

organizer属性将自动设置创建事件的日历的所有者。这不是您可以设置的属性。如果查看示例,您会看到organizer仅显示在响应中,而不显示在请求中。

答案 1 :(得分:2)

您无法在POST正文中设置管理器。

如果您使用的是/me/calendars/{id}/events,则登录的用户就是组织者(me)。

如果您使用/users/{id | userPrincipalName}/calendars/{id}/events,则将组织者设置为{id | userPrincipalName}(例如,使用应用程序权限应用程序)

示例:/users/Guilherme@mail.com/calendars/{id}/events。主办单位:Guilherme@mail.com

在您提供的Graph docs for Create Event链接中,您有请求示例(非响应)