我正在寻找一种方法来检测&使用Office 365 REST Message API设置电子邮件的“已标记”状态。我没有看到“标记”被列为REST Message的属性,但我确实看到它列在Exchange Web Services下。
我尝试进行REST调用,将Flag添加到已过滤的属性,以及SingleValueExtendedProperties和MultiValueExtendedProperties,如:
/folders/inbox/messages?$top=50&$select=Subject,...,Flag
/folders/inbox/messages?$top=50&$select=Subject,...,SingleValueExtendedProperties
/folders/inbox/messages?$top=50&$select=Subject,...,MultiValueExtendedProperties
所有这些都以某种形式回归:
{"error":{"code":"RequestBroker-ParseUri","message":"Could not find a property named \\\'Flag\\\' on type \\\'Microsoft.OutlookServices.Message\\\'."}}
有关如何通过REST API访问Outlook“Flag”属性的任何建议吗?
答案 0 :(得分:7)
更新:Flag
端点Message
上现在有/beta
个属性。这是执行此操作的推荐方式。我会将其他信息留在那里用于历史目的,并帮助那些尝试设置其他扩展属性的人。
现在您可以更轻松地获取/设置标志状态。 Message
entity现在具有Flag
类型的FollowupFlag
属性。 (如果您没有在该链接中看到它,请确保在页面顶部选择了beta
版本。)
您可以通过发送带有以下有效内容的PATCH
将邮件标记为已标记:
{
"Flag": {
"FlagStatus": "Flagged"
}
}
旧方法(使用扩展属性)
注意:我们最近进行了更改以简化扩展属性格式。这个变化现在正在向服务器推出,所以我已经 将新格式添加到此答案中。我已经保留旧格式以防万一 任何人都在访问尚未应用更新的邮箱。 如果使用旧格式,则会出现错误:
"Could not find a property named 'PropertyRef' on type 'Microsoft.OutlookServices.SingleValueLegacyExtendedProperty'."
您需要转到新格式。
您需要做的是添加$expand
查询参数以展开SingleValueExtendedProperties
集合,并使用$filter
子参数指示您要包含的属性。在这种情况下,您需要PidTagFlagStatus。尝试这样的查询:
新格式:
api/beta/me/messages?$select=Subject,SingleValueExtendedProperties&$expand=SingleValueExtendedProperties($filter=PropertyId eq 'Integer 0x1090')
旧格式:
api/beta/me/messages?$select=Subject,SingleValueExtendedProperties&$expand=SingleValueExtendedProperties($filter=(PropertyRef eq '0x1090' and Type eq Microsoft.OutlookServices.MapiPropertyType'Integer'))
根本没有标记的邮件将不会返回该属性。这些消息看起来像这样:
新格式:
{
"@odata.id": "https://outlook.office365.com/api/beta/Users('JasonJ@jasonjohdemo.onmicrosoft.com')/Messages('AAMkAGQ4Yzc2NDkwLTYxYmItNDZmYS1iZjI1LTYyNmY4NTZkMjI1NgBGAAAAAADwPSus7EwaR6q1wNtgoqEMBwDpfBfj8UPUTqu4bEwGpnFMAAAAAAEgAADpfBfj8UPUTqu4bEwGpnFMAAAjCUJGAAA=')",
"@odata.etag": "W/\"CQAAABYAAADpfBfj8UPUTqu4bEwGpnFMAAAjCzND\"",
"Id": "AAMkAGQ4Yzc2NDkwLTYxYmItNDZmYS1iZjI1LTYyNmY4NTZkMjI1NgBGAAAAAADwPSus7EwaR6q1wNtgoqEMBwDpfBfj8UPUTqu4bEwGpnFMAAAAAAEgAADpfBfj8UPUTqu4bEwGpnFMAAAjCUJGAAA=",
"Subject": "Test Flag",
"SingleValueExtendedProperties@odata.context": "https://outlook.office365.com/api/beta/$metadata#Me/Messages('AAMkAGQ4Yzc2NDkwLTYxYmItNDZmYS1iZjI1LTYyNmY4NTZkMjI1NgBGAAAAAADwPSus7EwaR6q1wNtgoqEMBwDpfBfj8UPUTqu4bEwGpnFMAAAAAAEgAADpfBfj8UPUTqu4bEwGpnFMAAAjCUJGAAA%3D')/SingleValueExtendedProperties",
"SingleValueExtendedProperties": [
{
"PropertyId": "Integer 0x1090",
"Value": "2"
}
]
}
旧格式:
{
"@odata.id": "https://outlook.office365.com/api/beta/Users('JasonJ@jasonjohdemo.onmicrosoft.com')/Messages('AAMkAGQ4Yzc2NDkwLTYxYmItNDZmYS1iZjI1LTYyNmY4NTZkMjI1NgBGAAAAAADwPSus7EwaR6q1wNtgoqEMBwDpfBfj8UPUTqu4bEwGpnFMAAAAAAEgAADpfBfj8UPUTqu4bEwGpnFMAAAjCUJGAAA=')",
"@odata.etag": "W/\"CQAAABYAAADpfBfj8UPUTqu4bEwGpnFMAAAjCzND\"",
"Id": "AAMkAGQ4Yzc2NDkwLTYxYmItNDZmYS1iZjI1LTYyNmY4NTZkMjI1NgBGAAAAAADwPSus7EwaR6q1wNtgoqEMBwDpfBfj8UPUTqu4bEwGpnFMAAAAAAEgAADpfBfj8UPUTqu4bEwGpnFMAAAjCUJGAAA=",
"Subject": "Test Flag",
"SingleValueExtendedProperties@odata.context": "https://outlook.office365.com/api/beta/$metadata#Me/Messages('AAMkAGQ4Yzc2NDkwLTYxYmItNDZmYS1iZjI1LTYyNmY4NTZkMjI1NgBGAAAAAADwPSus7EwaR6q1wNtgoqEMBwDpfBfj8UPUTqu4bEwGpnFMAAAAAAEgAADpfBfj8UPUTqu4bEwGpnFMAAAjCUJGAAA%3D')/SingleValueExtendedProperties",
"SingleValueExtendedProperties": [
{
"PropertyRef": "0x1090",
"Type": "Integer",
"Value": "2"
}
]
}
设置标志就像将PATCH发送到SingleValueExtendedProperties
集合中具有该属性的消息一样简单:
新格式:
PATCH https://outlook.office365.com/api/beta/me/messages/{id}
{
"SingleValueExtendedProperties": [
{
"PropertyId": "Integer 0x1090",
"Value": "2"
}
]
}
旧格式:
PATCH https://outlook.office365.com/api/beta/me/messages/{id}
{
"SingleValueExtendedProperties": [
{
"PropertyRef": "0x1090",
"Type": "Integer",
"Value": "2"
}
]
}
最后,根据MS-OXOFLAG,值2表示标记为后续,1表示标志已完成。