使用Microsoft图形 API管理状态

Microsoft图形 API使应用程序能够跨多个会话管理用户状态,确保准确且动态的可用性更新。

状态会话

用户可以有多个状态会话,因为用户可以位于多个 Teams 客户端上, (桌面、移动和 Web) 。 每个 Teams 客户端都有一个独立的状态会话,并且用户的状态是来自所有后面的会话的聚合状态。

同样,应用程序可以为用户提供自己的状态会话,并能够更新状态。

以下优先级用于会话状态的聚合方式,“A > B”表示 A 优先于 B:

  • 用户首选状态 > 会话级别状态 (用户首选状态替代会话级别状态)
  • 在会话级别状态中:DoNotDisturb > Busy > Available > Away

注意: 当 Microsoft Graph 中的用户状态发生更改时,由于 Teams 客户端使用轮询模式,因此更新状态需要几分钟时间。

状态排列

Teams 状态 图形可用性/活动
可用 available/available
可用,外出 available / outOfOffice
忙碌 busy/busy
在通话中 busy / inACall
In a meeting - 在会议中 busy / inAMeeting
在通话中,外出 busy / inACall + OOF
请勿打扰 doNotDisturb / doNotDisturb
提出 doNotDisturb / presenting
離開 away / away
马上回来 beRightBack / beRightBack
脱机显示 offline / offWork
Out of office - 外出 outOfOffice

注意

setPresence 方法不支持直接设置“外出 (OOF) ”或“在会议中”状态。 这些状态根据日历事件和邮箱配置自动管理,尝试通过 setPresence 方法设置它们不起作用。

若要反映 “外出” ,请使用 事件 API ,方法是将日历事件的 showAs 属性设置为 oof,或使用 mailboxSettings 配置用户的自动恢复设置。

“正在会议中”状态在安排的日历会议事件期间自动反映,不需要手动更新状态。

超时、过期和保持活动状态

状态会话可能会超时过期,因此应用程序需要在超时前调用状态:setPresence API,以维护会话的状态;或在过期之前,使会话保持活动状态。

如果可用性为 Available 且超时为 5 分钟,则状态会话可能会超时。 超时时,存在状态将分阶段淡出。 例如,如果应用程序将状态会话设置为 Available/Available,则状态将更改为 Available/AvailableInactive 5 分钟后,第一个超时,然后在 Away/Away 5 分钟内更改为第二个超时。

使用 expirationDuration 配置状态会话的过期时间;否则,默认过期时间为 5 分钟。 有效值范围为 5 分钟到 4 小时,之后会话变为 Offline

用于跨租户状态可见性和交互的受信任域

在 Teams 管理中心配置 外部访问权限 ,以便只有预期的合作伙伴组织才能 查看用户的状态并对其采取行动 。 在 Teams 管理中心 (用户 > 外部访问) ,允许所有域或将特定域添加到“会议”下的 “允许 ”列表 ,并与受信任的Microsoft 365 组织聊天。 这些受信任组织中的用户能够查看用户状态。 跨租户状态需要 相互信任,并且合作伙伴还必须允许你的域。 不受信任 (或被阻止) 无法看到状态或无法启动状态驱动的交互的域。 有关详细信息,请参阅 指定受信任的Microsoft 365 组织