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 配置。 当会话过期时,它将成为 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 分钟的默认过期时间。

重要

在请求中提供应用程序的 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