You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Microsoft Graph API仅用用户ID移除Teams用户或获取成员ID

解决方案:无需存储Membership ID移除Teams成员

你完全不需要依赖数据库存储membership ID,有两种高效的方式可以实现需求,其中一种甚至能直接通过用户ID完成移除操作:

方法一:利用Office 365 Group API直接移除(最简便)

Teams团队本质上是一个Office 365 Group,所以你可以直接调用Group的成员移除接口,无需获取membership ID,只需要团队ID和用户ID即可:

DELETE /groups/{team-id}/members/{user-id}/$ref

这个接口会直接将用户从团队(对应的Group)中移除,权限要求和Teams成员移除接口一致(比如TeamMember.ReadWrite.AllGroupMember.ReadWrite.All)。

方法二:先查询Membership ID再删除(针对Teams专属场景)

如果你更倾向于使用Teams专属的API,可以先通过用户ID查询对应的membership ID,再执行删除:

  1. 查询获取membership ID:使用$filter参数精准筛选目标用户的成员记录:
GET /teams/{team-id}/members?$filter=user/id eq '{user-id}'

响应结果里的id字段就是你需要的membership ID。
2. 执行删除操作:用获取到的membership ID调用Teams删除接口:

DELETE /teams/{team-id}/members/{membership-id}

进阶优化:批量请求合并查询与删除

如果想减少API调用次数,可以使用Microsoft Graph的批量请求,将查询和删除操作合并为一个请求:

{
  "requests": [
    {
      "id": "1",
      "method": "GET",
      "url": "/teams/{team-id}/members?$filter=user/id eq '{user-id}'"
    },
    {
      "id": "2",
      "method": "DELETE",
      "url": "/teams/{team-id}/members/{$1.value[0].id}"
    }
  ]
}

这个批量请求会先执行查询获取membership ID,再自动引用该ID完成删除操作,全程只需一次HTTP调用。

注意:确保你的应用已获得足够的权限(如TeamMember.ReadWrite.All),并且用户ID和团队ID的格式正确(通常是GUID)。

内容的提问来源于stack exchange,提问作者omar

火山引擎 最新活动