You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Microsoft Graph API返回事件的所有singleValueExtendedProperties?

解决Microsoft Graph API获取事件singleValueExtendedProperties的问题

核心原因

Graph API不会默认返回事件的扩展属性——不管有没有筛选器,你都需要显式指定要获取的singleValueExtendedProperties的匹配规则,否则响应里不会包含这些属性。

具体解决方案

1. 获取所有事件的所有singleValueExtendedProperties

如果要获取所有事件及其所有单值扩展属性,在expand参数中添加匹配所有属性的筛选条件即可:

const events = await client.api(`/users/${sharedMailbox}/calendars/${calendarId}/events`)
  .select('id,subject,body')
  .expand('singleValueExtendedProperties($filter=id eq \'*\')')
  .get();

这里$filter=id eq '*'表示匹配所有单值扩展属性,配合expand就能让每个事件的所有扩展属性出现在响应里。

2. 按特定扩展属性筛选事件并返回所有扩展属性

如果需要根据某个特定扩展属性筛选事件,同时返回该事件的所有扩展属性,需要把筛选逻辑拆到API的全局$filter和expand的子筛选里:

// 替换成你要筛选的目标扩展属性ID和对应值
const targetPropertyId = "String {00000000-0000-0000-0000-000000000000} Name MyProperty";
const targetValue = "NeedThisValue";

const events = await client.api(`/users/${sharedMailbox}/calendars/${calendarId}/events`)
  .select('id,subject,body')
  .filter(`singleValueExtendedProperties/any(ep: ep/id eq '${targetPropertyId}' and ep/value eq '${targetValue}')`)
  .expand('singleValueExtendedProperties($filter=id eq \'*\')')
  .get();

关键注意点

  • 扩展属性的ID格式必须严格匹配创建时的定义:{数据类型} {GUID} Name {属性名},比如字符串类型的属性ID格式为String {guid} Name MyProperty,查询时的ID要和创建时完全一致。
  • 如果只需要特定几个扩展属性,建议把$filter=id eq '*'换成具体的ID列表(比如$filter=id eq 'String {guid} Name Prop1' or id eq 'String {guid} Name Prop2'),能提升请求性能。

内容的提问来源于stack exchange,提问作者Kyle T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 07:00:10