Подтвердить что ты не робот

Невозможно фильтровать сообщения получателем в Microsoft Graph Api. Один или несколько недопустимых узлов

Я пытаюсь получить список сообщений, которые фильтруются получателем из API графиков Microsoft. URL-адрес, который я использую для запроса:

https://graph.microsoft.com/beta/me/messages?$filter=toRecipients/any(r: r/emailAddress/address eq '[Email Address]')

Но я получаю, что это ответ:

{
   "error": {
        "code": "ErrorInvalidUrlQueryFilter",
        "message": "The query filter contains one or more invalid nodes.",
        "innerError": {
            "request-id": "7db712c3-e337-49d9-aa8d-4a5d350d8480",
            "date": "2016-09-28T16:58:34"
        }
    }
}

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('99999999-9999-9999-9999-999999999999')/messages",
    "@odata.nextLink": "https://graph.microsoft.com/beta/me/messages?$skip=10",
    "value": [
        {
            "toRecipients": [
                {
                    "emailAddress": {
                        "name": "[Name]",
                        "address": "[Email Address]"
                    }
                }
            ],
        }
    ]
}

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

Есть ли проблема с моим URL-адресом или есть другой способ сделать запрос?

4b9b3361

Ответ 2

Ваш фильтр кажется правильным в соответствии с этим OData Basic Tutorial

У них есть пример ниже фильтра, который также запрашивает сложный тип данных, поэтому вы, кажется, имеете правильный путь.

serviceRoot/Me/Friends?$filter=Friends/any(f:f/FirstName eq 'Scott')

Возвращаясь к Microsoft Graph, запрос ниже работает, поэтому я могу только предположить, что запрос сложных типов данных нарушен.

https://graph.microsoft.com/v1.0/me/messages?$filter=categories/any(c: c eq 'test')

Не ответ, но, вероятно, просто подтверждающий, что вы испытали.

Ответ 3

Другой способ сделать запрос может состоять в том, чтобы не использовать фильтр и использовать поиск вместо этого, в зависимости от того, что вы хотите (и вы, возможно, уже пробовали это):

https://graph.microsoft.com/beta/me/messages?$search="to:[Email Address]"