2016-09-28 2 views
18

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

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-адресом или есть другой способ сделать запрос?

+0

В параметре $ filter определенно что-то не так. Что именно вы пытаетесь получить с вашим фильтром? –

+0

Я пытаюсь получить список всех сообщений, отправленных на конкретный адрес электронной почты. – Dave

+1

Это определенно похоже на ошибку, я просто потрачу полдня, прежде чем решиться пойти с поиском. Должен сначала проверить здесь :(. Существует также в Outlook Rest api v1.0 и v2.0. Я не мог найти место для его регистрации. Любой знает, как его зарегистрировать? – Dmitriy

ответ

2

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

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

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

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

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

2

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^