Graph API读取联系人/邮件SingleValueExtendedProperties无返回问题咨询
解决Microsoft Graph中singleValueExtendedProperties不返回的问题
核心原因:必须明确指定要获取的扩展属性
默认情况下,即使使用$expand=singleValueExtendedProperties,Microsoft Graph也不会返回所有扩展属性——你需要明确指定要获取的扩展属性的标识符,否则接口不会返回任何扩展属性数据。
正确的请求格式
不管是contacts还是messages资源,都需要在$expand中通过$filter筛选目标扩展属性:
- 针对自定义扩展属性的请求示例:
GET https://graph.microsoft.com/v1.0/me/contacts?$expand=singleValueExtendedProperties($filter=id eq 'String {12345678-1234-1234-1234-123456789012} Name MyCustomContactProperty') - 针对内置扩展属性的请求示例(以邮件的敏感度属性为例):
GET https://graph.microsoft.com/v1.0/me/messages/{ID}?$expand=singleValueExtendedProperties($filter=id eq 'String 0x0076')
其他需要排查的点
- 确认目标资源已设置该扩展属性:如果联系人或邮件本身从未设置过目标扩展属性,接口自然不会返回该字段。可以先通过POST/PUT请求给资源添加扩展属性后再尝试获取。
- 检查权限范围:确保当前用户或应用拥有足够的权限,比如访问联系人需要
Contacts.Read/Contacts.ReadWrite,访问邮件需要Mail.Read/Mail.ReadWrite权限,且权限已正确授予并 consented。 - 验证扩展属性ID格式:自定义扩展属性的ID格式必须严格符合规范,比如字符串类型的格式为
String {GUID} Name 属性名,内置属性则使用对应的十六进制标识符。
内容的提问来源于stack exchange,提问作者Bin4ry
相关产品推荐
相关产品推荐

