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

使用cURL调用MS Graph创建OnlineMeeting时出现Forbidden错误

问题描述

尝试通过cURL调用Microsoft Graph API创建OnlineMeeting,操作及遇到的问题如下:

  1. 已为应用配置用户及OnlineMeeting相关的委托、应用权限,目标用户为全局管理员。
  2. 通过client_credentials方式成功获取Bearer Token,请求命令:
curl -X POST -d 'grant_type=client_credentials&client_id=<my_client_id>&client_secret=<my_client_secret_value>&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default' https://login.microsoftonline.com/<my_tenant>/oauth2/v2.0/token
  1. 使用该Token调用创建OnlineMeeting接口时,返回Forbidden错误:
curl -X POST 'https://graph.microsoft.com/v1.0/users/<my_user_id>/onlineMeetings' -d '{"startDateTime":"2023-07-12T14:30:00", "endDateTime":"2023-07-12T16:30:00", "subject": "testMeeting"}' -H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>"

错误响应:

{"error":{"code":"Forbidden","message":"","innerError":{"request-id":"<some_req_id>","date":"2023-02-02T15:37:46","client-request-id":"<some_id>"}}}
  1. 同一Token调用/v1.0/users接口可正常返回数据。
解决办法

1. 确认应用权限已完成管理员同意

client_credentials流仅生效应用权限,委托权限在此场景下无效。需确保:

  • 已为应用添加应用权限OnlineMeetings.ReadWrite.All
  • 该权限已完成全局管理员同意(仅添加权限不生效,必须点击"授予管理员同意"按钮确认)

2. 检查目标用户的Teams许可证

即使是全局管理员,若未分配Microsoft Teams许可证,应用权限调用创建会议接口会返回Forbidden。需在Azure AD或Microsoft 365管理中心为<my_user_id>分配Teams许可证。

3. 验证Token的权限范围

解码获取到的Bearer Token,查看roles字段是否包含OnlineMeetings.ReadWrite.All:

  • 若不存在该权限,说明权限未正确授予或管理员同意未生效,需重新配置权限并完成同意操作
  • 若已存在该权限,继续排查其他原因

4. 修正请求时间格式

请求中的startDateTime和endDateTime需符合ISO 8601标准并包含时区信息(如2023-07-12T14:30:00+08:00或2023-07-12T06:30:00Z),虽然当前错误为Forbidden,但格式问题可能引发其他异常,建议统一修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:51:09