Расширения схемы GraphAPI не отображаются для сообщений - PullRequest
1 голос
/ 29 мая 2020

Я хотел бы добавить некоторые пользовательские данные в электронные письма и иметь возможность фильтровать их с помощью GraphAPI.
До сих пор мне удалось создать расширение схемы, и оно успешно возвращается, когда я запрашиваю https://graph.microsoft.com/v1.0/schemaExtensions/ourdomain_EmailCustomFields:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#schemaExtensions/$entity",
    "id": "ourdomain_EmailCustomFields",
    "description": "Custom data for emails",
    "targetTypes": [
        "Message"
    ],
    "status": "InDevelopment",
    "owner": "hiding",
    "properties": [
        {
            "name": "MailID",
            "type": "String"
        },
        {
            "name": "ProcessedAt",
            "type": "DateTime"
        }
    ]
}

Затем я исправил конкретное c сообщение https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/Messages/hidingmessageid:

PATCH Request
{"ourdomain_EmailCustomFields":{"MailID":"12","ProcessedAt":"2020-05-27T16:21:19.0204032-07:00"}}

Проблема в том, что когда я выбираю сообщение, добавленные пользовательские данные не отображаются при выполнении запроса GET: https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/Messages? $ top = 1 & $ select = id, subject, ourdomain_EmailCustomFields

Кроме того, следующее GET запрос дает мне ошибку.
Запрос: https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/Messages? $ filter = ourdomain_EmailCustomFields / MailID eq '12'

Ответ:

{
    "error": {
        "code": "RequestBroker--ParseUri",
        "message": "Could not find a property named 'e2_someguid_ourdomain_EmailCustomFields' on type 'Microsoft.OutlookServices.Message'.",
        "innerError": {
            "request-id": "someguid",
            "date": "2020-05-29T01:04:53"
        }
    }
}

У вас есть идеи, как решить проблемы? Спасибо!

1 Ответ

2 голосов
/ 29 мая 2020

Я взял ваше расширение схемы, скопировал и вставил его в свой клиент, за исключением случайной регистрации приложения, которую я создал как владелец. затем исправил письмо с вашим утверждением, и оно работает правильно.

Вот пара вещей, я бы проверил с помощью Microsoft graph explorer, что все правильно. например, войдите в проводник графиков с учетной записью администратора https://developer.microsoft.com/en-us/graph/graph-explorer# сначала убедитесь, что расширения схемы существуют

запустите запрос на получение

https://graph.microsoft.com/v1.0/schemaExtensions/DOMAIN_EmailCustomFields

Он должен вернуть созданное вами расширение схемы. затем

Запустите запрос на получение фактического сообщения, которое вы исправили, а не всех сообщений, которые вы отфильтровали на данный момент.

https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/Messages/MESSAGEID? $ select = DOMAIN_EmailCustomFields

здесь ответом должен быть адрес электронной почты, который вы пропатчили, и ваш EmailCustomField должен быть где-то в данных, если это не так, это означает, что ваш патч не сработал.

, затем вы можете снова запустить патч из графического обозревателя

Я сделал все это из графического обозревателя, самый простой способ подтвердить.

две другие вещи, 1) возможно,? $ Top = 1 в вашем первом сообщении не то же самое сообщение, которое вы исправили?

2) согласно документации, вы не можете использовать $ filter для расширений схемы с сущностью сообщения. (https://docs.microsoft.com/en-us/graph/known-issues#filtering -on-schema-extension-properties-not-supported-on-all-entity-types ) Так что второй Get никогда не будет работать.

Надеюсь, это поможет вам в устранении неполадок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...