test microsoft developer descargar odata microsoft-graph

odata - developer - No se pueden filtrar los mensajes por destinatario en Microsoft Graph Api. Uno o más nodos inválidos



microsoft graph test api (3)

Después de varias horas buscando la solución, encontré en la documentación de office365 que la propiedad toRecipients no se puede filtrar:

https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#MessageResource

Supongo que es lo mismo en la api del gráfico, por lo que la única solución es utilizar la búsqueda

Estoy tratando de obtener una lista de mensajes filtrados por destinatario desde la API de Microsoft Graph. La url que estoy usando para la solicitud es:

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

Pero estoy recibiendo esta es la respuesta:

{ "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" } } }

Una solicitud exitosa debería tener este aspecto (con muchos más datos que he omitido).

{ "@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]" } } ], } ] }

La solicitud funciona si elimino el filtro y puedo realizar solicitudes con filtros más simples.

¿Hay algún problema con mi URL o hay otra forma de realizar la solicitud?


Otra forma de realizar la solicitud podría ser no usar el filtro y usar la búsqueda, dependiendo de lo que quieras exactamente (y es posible que ya hayas probado esto):

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


Su filtro parece correcto de acuerdo con este tutorial básico de OData

Tienen el siguiente ejemplo de filtro que también está consultando un tipo de datos complejo, por lo que parece que tiene la forma correcta.

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

Volviendo a Microsoft Graph, la siguiente consulta funciona, así que solo puedo asumir que la consulta de los tipos de datos complejos no funciona.

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

No es una respuesta, pero probablemente solo confirme lo que ha experimentado.