2016-04-18 19 views
1

ich mit dem MS Graph Kontakte api gerade arbeite und suchen nach FilteroptionenMicrosoft Graph Kontakte api Filter auf Arrays

Ist es möglich, Kontakte zu filtern, die mindestens ein Element in Emailadressen oder buisnessphones hat ?.

Ich habe schon so etwas wie $ Filter versucht = Emailadressen/$ count gt; 0'

Antwort

1

$ count funktioniert nur auf der Ebene Kontakte und nach this document, $ Filter nicht für Emailadressen oder buisnessphones unterstützt noch.

Als Workaround können Sie die Ergebnisse aus der Kontaktsammlung mit C#/javascript filtern. Zum Beispiel in C#:

 using (var request = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me/contacts")) 
       { 
        request.Headers.Add("Authorization", "Bearer " + token); 
        request.Headers.Add("Accept", "application/json;odata.metadata=minimal"); 

        using (var response = client.SendAsync(request).Result) 
        { 

         if (response.StatusCode == HttpStatusCode.OK) 
         { 
          var model = JsonConvert.DeserializeObject<RootObject>(response.Content.ReadAsStringAsync().Result); 
          foreach (var item in model.value) 
          { 
           if (item.BusinessPhones.Count>0) 
           { 
            //you could add this contact to a contact list . 
           } 
          } 


         } 

        } 
       } 

    public class RootObject 
    { 

     public List<Value> value { get; set; } 
    } 

    public class Value 
    { 
     public string id { get; set; } 
     public List<object> BusinessPhones { get; set; } 
     public List<object> EmailAddresses { get; set; } 
    } 
+0

Danke, ich habe es bereits so umgesetzt –

Verwandte Themen