presence: setPresence

命名空间:microsoft.graph

重要

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

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

状态会话

用户可以具有多个状态会话,因为用户可以在桌面、Teams和 web (多个) 。 每个Teams客户端都有一个独立的状态会话,并且用户的状态是来自所有隐藏会话的聚合状态。

同样,应用程序可以具有其自己的用户状态会话,并能够更新状态。

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

  • 用户首选状态>会话级别状态 (用户首选状态覆盖会话级别状态)
  • 在会话级别状态中: setPresence (> Busy) > Available > Away 当前不支持 DoNotDisturb

超时、到期并保持活动状态

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

如果状态会话可用且 Available 超时为 5 分钟,则状态会话可能会超时。 当状态淡出时,状态将逐渐淡出。 例如,如果 Available/Available应用程序将状态会话设置为 , Available/AvailableInactive 状态将在 5 分钟内更改为第一个超时,然后在另外 5 Away/Away 分钟(第二个超时)中更改。

状态会话的过期时间可用 参数 expirationDuration 进行配置。 当会话过期时,它将变为 Offline

权限

调用 API 需要以下权限。 若要了解详细信息,包括如何选择权限的信息,请参阅权限

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

HTTP 请求

POST /users/{userId}/presence/setPresence

请求标头

名称 说明
Authorization Bearer {token}。必需。
Content-Type application/json. Required.

请求正文

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

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

如果未提供,将应用 5 分钟的默认过期时间。

重要

提供请求中应用程序 ID sessionId

支持的 和 availability activity 的组合包括:

availability 活动 说明
可用 可用 将状态会话更新为"可用"。
忙碌 InACall 将状态会话更新为 Busy、InACall。
忙碌 InAConferenceCall 将状态会话更新为 Busy、InAConferenceCall。
离开 离开 将状态会话更新为离开。

响应

如果成功,此方法返回 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