使用Microsoft Graph API按电话号码筛选联系人遇问题求助
解决Microsoft Graph API按电话号码筛选联系人的类型兼容错误
错误原因分析
你遇到的类型不兼容错误,本质是v1.0版本的Graph API不支持对联系人的phones复杂集合属性使用any筛选语法,并非你的查询语法有误。v1.0在解析这类集合筛选时会错误识别属性类型,从而抛出类型不匹配的提示。
解决方案
方案1:切换到Beta版本API
Beta版本的Graph API支持完整的OData集合筛选语法,直接修改请求URL即可:
https://graph.microsoft.com/beta/contacts?$filter=phones/any(p: p/number eq '+551000')
方案2:在v1.0中使用$search替代筛选
如果必须使用v1.0版本,可以利用$search参数直接搜索电话号码,需注意添加请求头ConsistencyLevel: eventual:
https://graph.microsoft.com/v1.0/contacts?$search="+551000"
你尝试的查询问题说明
- 第一个查询中,
s/business是错误的属性引用(phone对象没有business属性,正确属性为number),同时多余的嵌套引号也会导致语法错误。 - 第二个查询的语法本身是正确的,但仅在Beta版本中有效,v1.0不支持该类集合筛选,因此触发错误。
内容的提问来源于stack exchange,提问作者werghemmi sallem
相关产品推荐
相关产品推荐

