You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph API创建Term Store术语组返回400/403错误

Microsoft Graph创建Term Store术语组返回400/403错误解决方案

核心错误原因

  • 403权限错误:TermStore.ReadWrite.All应用程序权限目前不支持术语组创建操作,该POST接口仅支持同名称的委托权限,应用权限覆盖范围仅包含读取、更新术语等操作,不包含新建术语组,这是权限层面的硬限制。
  • 400请求格式错误:现有代码存在两个传参问题:
    1. POST请求未指定Content-Type: application/json请求头,且直接用data参数传递字典,默认会以表单格式提交,不符合Graph API的JSON载荷要求
    2. 如果操作的是租户全局术语存储,端点不需要拼接/sites/{root_site_id}前缀,该前缀仅用于访问站点级专属术语集,全局术语存储直接调用根路径下的termStore端点即可。

修复步骤

  1. 权限调整:如果是有用户登录的交互场景,将权限类型从应用程序权限切换为委托权限,保留TermStore.ReadWrite.All权限并完成租户管理员同意,即可获得创建术语组的权限。
  2. 请求代码修正:使用JSON格式传参,补全必要请求头,修正后的代码如下:
import requests

# 委托权限流获取的有效access_token
access_token = "替换为你的访问令牌"

# 读取术语组列表(全局术语存储版本)
termstore_get_groups = requests.get(
    url = "https://graph.microsoft.com/v1.0/termStore/groups",
    headers= {
        "Authorization" : f"Bearer {access_token}"
    }
)

# 创建术语组
termstore_create_group = requests.post(
    url = "https://graph.microsoft.com/v1.0/termStore/groups",
    headers= {
        "Authorization" : f"Bearer {access_token}",
        "Content-Type": "application/json"
    },
    json= {"displayName" : "Test"}
)

# 打印响应结果调试
print(termstore_create_group.status_code, termstore_create_group.text)

无交互后台服务场景替代方案

如果必须使用应用程序权限(守护程序服务、无用户登录场景),暂时可以通过SharePoint旧版REST API完成术语组创建,该接口支持应用权限调用:

  • 需要为AAD应用额外授予Sites.Manage.All应用程序权限
  • 完成SharePoint租户级的应用权限授予后,调用对应Taxonomy接口完成创建操作

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:24:58