2016-09-28 3 views
18

मैं माइक्रोसॉफ्ट ग्राफ एपीआई से प्राप्तकर्ता द्वारा फ़िल्टर किए गए संदेशों की एक सूची प्राप्त करने का प्रयास कर रहा हूं। यूआरएल मैं अनुरोध के लिए उपयोग कर रहा हूँ है:माइक्रोसॉफ्ट ग्राफ एपीआई में प्राप्तकर्ता द्वारा संदेशों को फ़िल्टर करने में असमर्थ। एक या अधिक अमान्य नोड्स

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

अनुरोध अगर मैं फ़िल्टर को हटाता हूं तो अनुरोध काम करता है, और मैं सरल फ़िल्टर के साथ अनुरोध करने में सक्षम हूं।

क्या मेरे यूआरएल में कोई समस्या है, या अनुरोध करने का कोई और तरीका है?

+0

का उपयोग कर रहा है निश्चित रूप से आपके $ फ़िल्टर पैरामीटर के साथ कुछ गड़बड़ है। आप अपने फ़िल्टर के साथ वास्तव में क्या करने की कोशिश कर रहे हैं? –

+0

मैं एक विशिष्ट ईमेल पते पर भेजे गए सभी संदेशों की एक सूची प्राप्त करने का प्रयास कर रहा हूं। – Dave

+1

यह निश्चित रूप से एक बग की तरह दिखता है, मैं खोज के साथ जाने का निर्णय लेने से पहले आधा दिन बिताता हूं। पहले यहां जांच करनी चाहिए :(। Outlook Rest api v1.0 और v2.0 में मौजूद है। मुझे लॉग इन करने के लिए कोई जगह नहीं मिली। हालांकि कोई जानता है कि इसे कैसे लॉग किया जाए? – Dmitriy

उत्तर

1

कई घंटे के बाद की तलाश में समाधान के लिए, मैं Office365 प्रलेखन में पाया है कि संपत्ति toRecipients फ़िल्टर नहीं है:

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

मुझे लगता है कि यह ग्राफ एपीआई में एक ही है, इसलिए केवल इतना ल्यूशन खोज

2

आपका फ़िल्टर इस OData Basic Tutorial

वे नीचे फिल्टर उदाहरण ताकि आप सही तरीका है लगता है जो भी एक जटिल डेटा प्रकार की क्वेरी है के अनुसार सही लगता है।

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

वापस माइक्रोसॉफ्ट ग्राफ़ के लिए जा रहे, नीचे दिए गए क्वेरी काम करता है तो मैं केवल यह मान सकते हैं कि जटिल डेटा प्रकार की क्वेरी टूटी हुई है।

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]"

संबंधित मुद्दे