2016-04-18 4 views
1

Я работаю с апи мс график контактов и ищу опцию фильтраMicrosoft Graph контакты апи фильтр на массивах

Можно ли фильтровать контакты, которые имеют по меньшей мере один элемент в emailadresses или buisnessphones ?.

Я уже пытался что-то вроде $ фильтра = EmailAddresses/$ Количество GT 0'

ответ

1

$ счетчик работает только на уровне контактов и в соответствии с this document, $ фильтр не поддерживается для emailadresses или buisnessphones еще.

Как обходной путь, вы можете отфильтровать результаты из коллекции контактов, используя C#/javascript. Например, в 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

Спасибо, что я уже реализовал его таким образом –