无法通过Microsoft Graph API获取Outlook加载项自定义属性如何解决
问题根因及解决方案
核心问题1:自定义属性存储逻辑认知偏差
通过Office.js的loadCustomPropertiesAsync、saveAsync接口存储的所有自定义键值对,不会为每个键单独生成扩展属性,而是会统一序列化为JSON字符串,存储在同一个固定格式的单值扩展属性中。
核心问题2:扩展属性命名规则匹配错误
你请求中使用的属性名cecp-myAddInManifestId不符合Office.js的存储规则,正确的属性名格式为:cecp-<加载项清单ID(无大括号、全小写的原始GUID)>
你需要先打开加载项的manifest文件,提取<Id>标签内的GUID值,去掉所有大括号、转成全小写后拼接在cecp-后面,才是正确的属性名。
操作校验步骤
- 确认Graph API权限:你调用接口的令牌必须拥有
Calendars.Read及以上权限(应用权限、委托权限均可),权限不足时扩展属性不会被返回 - 修正请求参数中的属性ID,示例正确格式如下:
{{endpoint}}/Users/{用户ID}/Events/{事件ID}?$expand=singleValueExtendedProperties($filter=id eq 'String {00020329-0000-0000-C000-000000000046} Name cecp-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
- 拿到返回结果后,提取
singleValueExtendedProperties字段中对应属性的value值,该值为JSON字符串,自行解析即可获取你存储的所有自定义键值对。
内容的提问来源于stack exchange,提问作者Hepatus
相关产品推荐
相关产品推荐

