在 Exchange 中创建消息导致 "UnableToDeserializePostBody"

Create message in Exchange causes "UnableToDeserializePostBody"

我有一些代码在几个月前工作得很好,但是图表 API 中的某些内容发生了变化,这不再有效。我正在尝试通过对此 url:

执行 POST 在现有文件夹中创建消息
https://graph.microsoft.com/v1.0/users/jjones@transend.onmicrosoft.com/mailFolders/AAMkADNjAAA=/messages

(文件夹 ID 缩短)

调用失败并出现 http 错误 400,返回的错误是“UnableToDeserializePostBody”。输入 json 如下所示。通过实验,我能够将问题具体追溯到“singleValueExtendedProperties”。我通常把几个属性放在那里,但对于这个测试,我删除了除了你看到的那个以外的所有属性。我也尝试过其他属性,它们都失败了。这似乎是一些愚蠢的格式错误,但我看不到。任何帮助表示赞赏。

{
"subject": "Test again",
"Sender": {
"emailAddress": {
"name": "John Doe",
"address": "missing@domain.com"
}
},
"body": {
"contentType": "TEXT",
"content": "This is a text message."
},
"toRecipients": [
{
"emailAddress": {
"name": "Jane Smith",
"address": "missing@domain.com"
}
}
],
"ccRecipients": [
{
"emailAddress": {
"name": "Bob Jones",
"address": "missing@domain.com"
}
}
],
"singleValueExtendedProperties": [
{
"propertyId": "SystemTime 0x0039",
"value": "1998-07-29T21:30:00.0000+00:00"
}
],
"importance": "normal"
}

这里的主要问题是您在 singleValueExtendedProperties object 中指定的 属性('propertyid') 无效。 singleValueExtendedProperties 中只有 2 个属性。一个是 id 另一个是 value.

将 'propertyId' 替换为 id

我已经在 POSTMAN 中测试了它,您的负载将 属性Id 更改为 id 并且它有效。

请求正文:-

{
"subject": "Test again",
"Sender": {
"emailAddress": {
"name": "John Doe",
"address": "missing@domain.com"
}
},
"body": {
"contentType": "TEXT",
"content": "This is a text message."
},
"toRecipients": [
{
"emailAddress": {
"name": "Jane Smith",
"address": "missing@domain.com"
}
}
],
"ccRecipients": [
{
"emailAddress": {
"name": "Bob Jones",
"address": "missing@domain.com"
}
}
],
"singleValueExtendedProperties": [
{
"id": "SystemTime 0x0039",
"value": "1998-07-29T21:30:00.0000+00:00"
}
],
"importance": "normal"
}