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

问题描述 投票:0回答:4

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

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

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

microsoft-graph-api microsoft-teams microsoft-graph-teams
4个回答
5
投票

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

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

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

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

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


4
投票

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

{"availability":"Busy"}

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


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"}'

0
投票

这只适用于当前登录的用户,但我发现了一些未记录的 ms-teams.exe 命令行参数(我正在使用 New Teams),可以成功更改状态:

--set-presence-to-available
--set-presence-to-dnd
--set-presence-to-be-right-back
--set-presence-to-away
--set-presence-to-offline
--reset-presence

我实际上是通过反汇编二进制文件找到这些的,到目前为止,在谷歌支持的互联网上没有对这些的引用。将来他们可能会被禁用。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.