Помеченные сообщения через Office 365 REST API?
Я ищу способ определения и установки "помеченного" состояния электронной почты с помощью API-сообщения REST Office 365. Я не вижу флажка в качестве свойства сообщения REST, хотя вижу его в списке веб-служб Exchange.
Я попытался сделать вызов REST, добавив флаг к отфильтрованным свойствам, а также к 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\\\'."}}
Любые предложения о том, как получить доступ к свойству Outlook "Флаг" через REST API?
1 ответ
ОБНОВЛЕНИЕ: теперь есть Flag
собственность на Message
на /beta
конечная точка. Это рекомендуемый способ сделать это. Я оставлю там другую информацию для исторических целей и для помощи людям, пытающимся установить другие расширенные свойства.
Теперь вы можете получить / установить статус флага намного проще. Message
сущность теперь имеет 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 означает, что флаг завершен.