presence: setPresence

命名空间:microsoft.graph

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

为用户设置应用程序状态会话中的可用性和活动状态。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

状态会话

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

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

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

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

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

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

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

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

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

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) Presence.ReadWrite 不可用。
委派(个人 Microsoft 帐户) 不支持。 不支持。
应用程序 Presence.ReadWrite.All 不可用。

HTTP 请求

POST /users/{userId}/presence/setPresence

请求标头

名称 说明
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-Type application/json. 必需。

请求正文

在请求正文中,提供具有以下参数的 JSON 对象。

参数 类型 说明
sessionId string 应用程序的状态会话的 ID。
availability string 基本状态信息。
活动 string 可用性的补充信息。
expirationDuration duration 应用状态会话的过期时间。 该值在持续时间内以 ISO 8601 格式表示。

如果未提供,则应用默认过期 5 分钟。 有效持续时间范围为 5 到 240 分钟, (PT5M 到 PT4H) 。

重要

在请求中提供应用程序的 sessionId ID。

支持的 和 activity 组合availability包括:

availability 活动 说明
可用 可用 将状态会话汇报为“可用”。
忙碌 InACall 将状态会话汇报为“忙碌”、“InACall”。
忙碌 InAConferenceCall 将状态会话汇报为“忙碌”、“InAConferenceCall”。
離開 離開 将状态会话汇报为“离开”。
DoNotDisturb 提出 将状态会话汇报为 DoNotDisturb,演示。

响应

如果成功,此方法返回 200 OK 响应代码。

示例

以下请求显示了 ID 22553876-f5ab-4529-bffb-cfe50aa89f87 的应用程序,该应用程序为用户 fa8bf3dc-eca7-46b7-bad1-db199b62afc3设置其状态会话。

请求

POST https://graph.microsoft.com/beta/users/fa8bf3dc-eca7-46b7-bad1-db199b62afc3/presence/setPresence
Content-Type: application/json

{
  "sessionId": "22553876-f5ab-4529-bffb-cfe50aa89f87",
  "availability": "Available",
  "activity": "Available",
  "expirationDuration": "PT1H"
}

响应

HTTP/1.1 200 OK