Graph API无法获取联系人附件:排查后遇错误求解决方案
获取IPM.Contact联系人附件的正确方法
你遇到的问题根源在于:
- Microsoft Graph API默认获取联系人详情的请求不会返回附件数据;
- PR_MESSAGE_ATTACHMENTS(0x0E13)属于MAPI复合对象类型属性,Graph API不支持通过
singleValueExtendedProperties或multiValueExtendedProperties扩展获取这类属性,因此会返回ErrorUnsupportedMapiPropertyType错误。
正确的做法是使用Graph API原生支持的attachments导航属性来获取联系人附件,具体有两种实现方式:
方式一:在联系人详情请求中扩展附件数据
直接在获取联系人详情的请求里通过$expand参数加载关联的附件:
GET https://graph.microsoft.com/v1.0/me/contactFolders/{contactFolderId}/contacts/{contactId}?$expand=attachments
方式二:单独请求联系人的附件资源
直接调用联系人专属的attachments端点,获取该联系人的所有附件列表:
GET https://graph.microsoft.com/v1.0/me/contactFolders/{contactFolderId}/contacts/{contactId}/attachments
返回内容说明
两种方式都会返回完整的附件信息,包含:
- 附件名称(
name) - 内容类型(
contentType) - 文件大小(
size) - 附件唯一ID(
id) - 对于文件类附件,可通过
contentBytes字段获取Base64编码的文件内容(需确保应用持有对应权限)
权限要求
需为应用配置Contacts.Read或Contacts.ReadWrite权限(根据是否需要修改附件选择对应权限)。
内容的提问来源于stack exchange,提问作者Kartikey Semwal
相关产品推荐
相关产品推荐

