如何通过 API 调用更新 MS Teams 中的状态/状态/可用性?

dda*_*dda 5 microsoft-teams microsoft-graph-teams microsoft-graph-api

我知道 beta Graph Presence API。但是,这目前仅允许检索在线状态数据。我希望能够使用 api 调用更改 Teams 用户的状态可用性。我能找到的最新信息已经有好几年了:(Microsoft Teams 是否可以更新用户的状态/状态?

如果 Teams API 不包含此功能,如果 Teams 仍然可用,它是否仍然可以通过底层 UCWA API 完成?或者,更一般地说,是否有其他方法可以让外部应用程序更新 Teams 用户的状态可用性?

或者,有没有办法通过 api 调用更新 Office 365 中的可用性/状态?

Łuk*_*rko 5

如果您登录到团队 Web 应用程序并更改可用性状态,您可以看到该应用程序实际上正在使用简单的 JSON 正文对https://presence.teams.microsoft.com/v1/me/forceavailability/进行 PUT 调用

{"availability":"Busy"}
Run Code Online (Sandbox Code Playgroud)

这可能是非官方的,但也许值得一试?


Łuk*_*rko 5

对于任何仍然感兴趣的人,有一个新的 API 可用,允许使用应用程序权限类型设置用户状态。

https://learn.microsoft.com/en-us/graph/api/presence-setpresence?view=graph-rest-1.0&tabs=http

我已经测试过它,它似乎“大部分”有效。我观察到两个问题:

  1. 为其设置了状态的用户在其团队客户端(桌面/网络/移动设备)中看不到更新。但其他人看到状态发生了变化。
  2. 设置离开/离开不起作用 - 状态更改为可用/有空。

所以虽然它是 1.0 版本,但对我来说它仍然是测试版。


use*_*602 2

Lukasz 是正确的,唯一的问题是您还需要在标头中提供不记名令牌以进行授权

curl --location --request PUT 'https://presence.teams.microsoft.com/v1/me/forceavailability/' \--header 'Authorization: Bearer your_token_here --header 'Content-Type: application/json' \--data-raw '{    "availability": "Busy"}'
Run Code Online (Sandbox Code Playgroud)