我知道 beta Graph Presence API。但是,目前仅允许检索状态数据。我希望能够使用 api 调用更改 Teams 用户的状态可用性。我能找到的最新信息已有几年历史了:(Microsoft Teams 有办法更新用户的状态/状态吗?)
如果 Teams API 不包含此功能,如果 Teams 仍然可用,是否仍可以通过底层 UCWA API 来完成此功能?或者,更一般地说,是否有其他方法可以让外部应用程序更新 Teams 用户的状态可用性?
或者,有没有办法通过 api 调用更新 Office 365 中的可用性/状态?
对于任何仍然感兴趣的人,有一个新的 API 可用,允许使用应用程序权限类型设置用户状态。
https://learn.microsoft.com/en-us/graph/api/presence-setpresence?view=graph-rest-1.0&tabs=http
我已经测试过它,它似乎“大部分”有效。我观察到两个问题:
所以虽然它是 1.0 版本,但对我来说它仍然是测试版。
如果您登录团队 Web 应用程序并更改可用性状态,您可以看到该应用程序实际上正在使用简单的 JSON 正文对 https://presence.teams.microsoft.com/v1/me/forceavailability/ 进行 PUT 调用
{"availability":"Busy"}
这可能是非官方的,但也许值得一看?
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"}'
这只适用于当前登录的用户,但我发现了一些未记录的 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
我实际上是通过反汇编二进制文件找到这些的,到目前为止,在谷歌支持的互联网上没有对这些的引用。将来他们可能会被禁用。