数组上的Microsoft Graph联系人api筛选器



我正在使用ms图联系人api并寻找过滤选项

是否可以过滤电子邮件地址或楼宇电话中至少有一个元素的联系人?。

我已经尝试过类似$filter=emailAddresses/$count gt 0'

$count仅在联系人级别工作,根据本文档,$filter还不支持电子邮件地址或内置电话。

作为一种变通方法,您可以使用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; }
}

最新更新