2016-09-28 46 views
18

Microsoft Graph API'dan alıcı tarafından filtrelenen iletilerin bir listesini almaya çalışıyorum.Microsoft Graph Api'deki alıcılara göre iletileri filtreleyemiyor. Bir veya daha fazla geçersiz düğüm

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

Ama bu soruyla yanıttır: Ben isteği kullanıyorum url'dir Başarılı bir istek gibi görünmelidir

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

(çok daha fazla veri ile ben ihmal edilmiş).

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

Filtreyi kaldırırsam istekte bulunur ve istekleri daha basit filtrelerle gerçekleştirebilir.

URL'mde bir sorun var mı, yoksa isteği gerçekleştirmenin başka bir yolu var mı?

+0

Arayışı kullanmaktadır. $ filter parametrenizde kesinlikle bir sorun var. Filtrenizle tam olarak ne elde etmeye çalışıyorsunuz? –

+0

Belirli bir e-posta adresine gönderilen tüm iletilerin bir listesini almaya çalışıyorum. – Dave

+1

Bu kesinlikle bir hataya benziyor, sadece arama yapmaya karar vermeden yarım gün geçiriyorum. Burada ilk olarak kontrol etmeliyiz :(. Outlook Rest api v1.0 ve v2.0 da var. Yine de oturum açmak için bir yer bulamadım. – Dmitriy

cevap

2

Filtreniz Onlar doğru yol var gibi görünüyor bu yüzden de karmaşık bir veri türü sorgulama aşağıda filtre örneği var bu OData Basic Tutorial

göre doğru görünüyor. Aşağıda sorgu çalışır geri Microsoft Graph gidiş

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

yüzden sadece karmaşık veri türlerini sorgulama kırık olduğunu varsayabiliriz.

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

Bir yanıt değil, muhtemelen yalnızca yaşadığınız şeyi onaylayın.

2

tam olarak istediğiniz şeye bağlı olarak yerine filtre ve kullanım aramayı kullanmamaya olabilir isteği yapmak için başka bir yol (ve zaten bu çalışmış olabileceğini): Birkaç saat sonra

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